我实际上是在跟踪两个小的wpf应用程序,一个是在主计算机上,您可以编写飞行员的时间,第二个必须在大屏幕上显示,并连接到hdmi的主计算机,然后仅显示到飞行员。

我曾经做过一切,一切都很好。

但是,当我启动第一个应用程序时,我希望第二个应用程序在第二个屏幕中自动启动。我只找到像Forms包这样的解决方案:

System.Windows.Forms.Screen.AllScreens


但是我使用WPF,因此无法访问System.Windows.Forms。

任何人都想办法解决?
非常感谢!

最佳答案

即使它是WPF应用程序,您仍然可以引用System.Windows.Forms。
只需在解决方案资源管理器中右键单击该项目,添加引用,然后选择System.Windows.Forms。

然后使用如下代码:(您还将需要引用System.Drawing)

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        this.MaximizeToSecondaryMonitor();
    }

    public void MaximizeToSecondaryMonitor()
    {
        var secondaryScreen = Screen.AllScreens.Where(s => !s.Primary).FirstOrDefault();

        if (secondaryScreen != null)
        {
            var workingArea = secondaryScreen.WorkingArea;
            this.Left = workingArea.Left;
            this.Top = workingArea.Top;
            this.Width = workingArea.Width;
            this.Height = workingArea.Height;

            if (this.IsLoaded)
            {
                this.WindowState = WindowState.Maximized;
            }
        }
    }
}


code taken from here

10-07 19:28
查看更多