C# 在UWP中的辅助监视器上打开新窗口
我有一个UWP项目,有两个监视器,我想用它们在辅助监视器上打开一个新窗口。该应用程序包括三个部分:C# 在UWP中的辅助监视器上打开新窗口,c#,uwp,C#,Uwp,我有一个UWP项目,有两个监视器,我想用它们在辅助监视器上打开一个新窗口。该应用程序包括三个部分: 在第一个监视器上打开主页 创建新页面 在辅助监视器上打开 我正确地写了第一部分和第二部分,但是我找不到第三部分的解决方案 请帮我把窗口移到另一个显示器上 public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); //call
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
//called creat new page function
NewWindow();
}
private async void NewWindow()
{
var myview = CoreApplication.CreateNewView();
int newid = 0;
await myview.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
Frame newframe = new Frame();
newframe.Navigate(typeof(Newpage), null);
Window.Current.Content = newframe;
Window.Current.Activate();
ApplicationView.GetForCurrentView().Title = "Z";
newid = ApplicationView.GetForCurrentView().Id;
});
await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newid, ViewSizePreference.UseMinimum);
}
}
这可能有助于您识别监视器
this.Location = Screen.AllScreens[1].WorkingArea.Location;
正如@Ehssan所建议的那样,这符合您的要求。创建新视图时,可以使用将其发送到投影仪或其他辅助显示器
您可以向官方了解更多信息。我找到了解决方案并使用了它
看看ProjectionManager类。这是winforms应用程序吗?不,它是WFP平台中的UWP appScreen类,但我不知道它在UWP中是如何工作的。
private async void expand()
{
var NewWindow = CoreApplication.CreateNewView();
int Windowid = ApplicationView.GetForCurrentView().Id;
int NewWindowid = 0;
await NewWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
Frame newframe = new Frame();
newframe.Navigate(typeof(Newpage), null);
Window.Current.Content = newframe;
Window.Current.Activate();
ApplicationView.GetForCurrentView().Title = "New Page";
NewWindowid = ApplicationView.GetForCurrentView().Id;
});
//Call ProjectionManager class for moving new window to secodary display
bool available = ProjectionManager.ProjectionDisplayAvailable;
ProjectionManager.ProjectionDisplayAvailableChanged += (s, e) =>
{
available = ProjectionManager.ProjectionDisplayAvailable;
};
await ProjectionManager.StartProjectingAsync(NewWindowid, Windowid);
}