我有一个设置了MaxWidth的WPF窗口,所以当我点击最大化按钮时,它会垂直最大化而不是水平最大化。这是预期的行为。但是,窗口总是停靠在屏幕的左侧(Windows 7,如果这很重要),我希望它在最大化时水平居中。我尝试添加以下StateChanged
事件处理程序,但它似乎没有做任何事情:
private void wdw_mainWindow_StateChanged(object sender, EventArgs e)
{
switch (WindowState)
{
case WindowState.Maximized:
var windowWidth = (double)GetValue(WidthProperty);
Left = (SystemParameters.PrimaryScreenWidth / 2) - (windowWidth / 2);
break;
}
}
我在switch
语句上设置了一个断点,当我点击我的应用中的“最大化”按钮时,这个代码肯定会受到影响。但是,即使设置Left
后,窗口仍然牢牢地卡在屏幕的左侧。发生了什么事?
答案 0 :(得分:0)
答案 1 :(得分:0)
答案 2 :(得分:0)
注册到位置也发生了变化,当两个事件都发生时执行逻辑,它就可以了。