Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在UWP中的辅助监视器上打开新窗口_C#_Uwp - Fatal编程技术网

C# 在UWP中的辅助监视器上打开新窗口

C# 在UWP中的辅助监视器上打开新窗口,c#,uwp,C#,Uwp,我有一个UWP项目,有两个监视器,我想用它们在辅助监视器上打开一个新窗口。该应用程序包括三个部分: 在第一个监视器上打开主页 创建新页面 在辅助监视器上打开 我正确地写了第一部分和第二部分,但是我找不到第三部分的解决方案 请帮我把窗口移到另一个显示器上 public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); //call

我有一个UWP项目,有两个监视器,我想用它们在辅助监视器上打开一个新窗口。该应用程序包括三个部分:

  • 在第一个监视器上打开主页
  • 创建新页面
  • 在辅助监视器上打开
  • 我正确地写了第一部分和第二部分,但是我找不到第三部分的解决方案

    请帮我把窗口移到另一个显示器上

    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);
        }