Wpf start in primary screen

前端 未结 5 1274
臣服心动
臣服心动 2020-12-21 00:43

If user has multiple screens,

how can I start application in primary screen or chosen screen at start up

5条回答
  •  温柔的废话
    2020-12-21 01:28

    Heres the basic code. It uses WinForms but I dont know of a pure WPF solution.

    using System;
    using System.Windows;
    using System.Windows.Forms;
    
    namespace Foo
    {
        public class WindowUtility
        {
            public static void MoveToMonitor(Window window, int monitorId, bool maximize)
            {
                Screen[] screens = Screen.AllScreens;
    
                int screenId = monitorId - 1;
    
                if (screens.Length > 1 && screenId < screens.Length)
                {
                    var screen = screens[screenId];
                    var area = screen.WorkingArea;
    
                    if (maximize)
                    {
                        window.Left = area.Left;
                        window.Top = area.Top;
                        window.Width = area.Width;
                        window.Height = area.Height;
                    }
                    else
                    {
                        window.Left = area.Left;
                        window.Top = area.Top;
                    }
                }
            }
        }
    }
    

提交回复
热议问题