2

モニターごとに異なる画面サイズを設定したい。

解像度

プライマリ - 1600*900、

セカンダリ - 1920*1080

私のアプリケーションはプライマリ画面で正常に動作していますが、アプリケーションをセカンダリ画面にドラッグして最大化すると、プライマリ画面の高さに従ってのみ最大化されます。

現在の画面ごとにアプリケーションの画面サイズが必要です。

4

1 に答える 1

4

Screenclass fromSystem.Windows.Formsを使用して、アプリケーションが 2 番目の画面にあるかどうかを定義することをお勧めします。ユーザーがいつアプリケーションを 2 番目のディスプレイに移動したかを知る必要があり、それを知るために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>   
于 2016-04-14T11:25:20.167 に答える