0
我想保持窗口始終最大化,它可以在單個屏幕中完美工作。但是,當我使用兩個屏幕(特別是當主屏幕變化時),我捕捉到分辨率改變的事件並使其最大化,但它不起作用。我試圖處理窗口的寬度和高度,它也不起作用。WPF:在開關主屏幕上保持窗口最大化
這裏是我是如何運作的:
- 使用一個單一的小屏幕(1366×768),並最大化了窗口。
- 連接另一個大屏幕(1920 * 1080),它被設置爲主屏幕(現在我們有兩個屏幕)。然後窗口將顯示在大屏幕上,並且不會最大化並保持在1366 * 768(有時它會變得最大化,但並不總是)。
這裏是我的代碼:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.WindowState = WindowState.Maximized;
SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged;
}
//this method catch the resolution changed event
private void SystemEvent_DisplaySettingsChanged(object sender, EventsArgs e)
{
WindowState = WindowState.Maximized;
}
}
窗口XAML代碼:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
ResizeMode="CanMinimize"
SizeToContent="Manual"
WindowStartupLocation="CenterScreen" />
很好推薦,其實我已經試過了,而且我很肯定WindowState在此之後被設置爲最大化,它只是沒有效果。 – McHo
也許'WindowState'屬性已經被設置爲'Maximized'(儘管窗口沒有出現最大化),所以儘早設置爲'Maximized'會返回並且不會嘗試實際執行任何操作。您是否嘗試將其設置爲「正常」,然後再次回到「最大化」?我更新了我的答案,以表明我的意思。 – Xavier
酷,它的工作原理!這與你所說的完全相同,它認爲它已經最大化了。非常感謝你。 – McHo