在辅助监视器上设置wpf应用程序屏幕高度最大化

时间:2016-04-14 09:48:55

标签: c# wpf fullscreen maximize-window

我想为不同的显示器设置不同的屏幕尺寸。

解决

primary - 1600 * 900,

次要 - 1920 * 1080

我的应用程序在主屏幕上工作正常,但是当我在辅助屏幕上拖动应用程序并最大化时,它仅根据主屏幕高度最大化。

我希望应用程序屏幕大小符合当前屏幕。

1 个答案:

答案 0 :(得分:3)

我建议您使用Screen中的System.Windows.Forms类来定义您的应用程序是否在第二个屏幕上。有必要知道用户何时将您的应用程序移动到第二个显示器并知道它,我使用LocationChanged事件:

代码隐藏:

private Screen GetSecondaryScreen()
    {
        foreach (Screen screen in Screen.AllScreens)
        {
            if (screen != Screen.PrimaryScreen)
                return screen;
        }
        return Screen.PrimaryScreen;
    }        

    private void Window_LocationChanged(object sender, EventArgs e)
    {            
        if (Screen.PrimaryScreen != GetSecondaryScreen())
        {
            this.WindowState = WindowState.Maximized;
        }
    }

XAML:

<Window x:Class="DateTimePickerDataGridWPF.MainWindow"
    ...the code omitted for the brevity...
    Title="MainWindow" Height="350" Width="525" LocationChanged="Window_LocationChanged">
</Window>