我的项目使用的是.NET 4.0,我有一个WPF应用程序和2个分辨率为1600 X 900和1920 X 1080的显示器。在第一种情况下,当我将应用程序移动到HD时,由于分辨率低,我期待滚动条分辨率监视器,并最大化它,滚动条出现X和Y轴。
当两个屏幕具有相同的分辨率1920 X 1080时,一切都运行良好,不会出现滚动条。
最大化片段:
if (screen != null)
{
window.WindowState = System.Windows.WindowState.Normal;
window.Left = screen.WorkingArea.Left;
window.Top = screen.WorkingArea.Top;
window.WindowState = System.Windows.WindowState.Maximized;
window.Height = screen.WorkingArea.Height;
window.Width = screen.WorkingArea.Width;
}
我知道在4.5中,我可以使用SystemCommands来最大化。但我不知道如何在4.0中解决这个问题。 我想知道即使窗口状态最大化,为什么还会显示滚动条?
答案 0 :(得分:1)
我找到了解决方案,通过检查窗口组件的属性,以某种方式调整了不同分辨率监视器的resize mode属性。也许它会记住较低分辨率的调整大小模式,即使它是在高分辨率显示器上打开的。 所以下面的代码解决了我的问题。
if (screen != null)
{
window.WindowState = System.Windows.WindowState.Normal;
window.Left = screen.WorkingArea.Left;
window.Top = screen.WorkingArea.Top;
window.ResizeMode = ResizeMode.NoResize;
window.WindowStyle = WindowStyle.None;
window.WindowState = System.Windows.WindowState.Maximized;
window.Height = screen.WorkingArea.Height;
window.Width = screen.WorkingArea.Width;
}
我希望它可以帮助那些可能被困在这里的人。
答案 1 :(得分:0)
WPF应用程序通常与您的分辨率无关。 如果你想让窗口最大化,只需使用:
window.WindowState = System.Windows.WindowState.Maximized;
答案 2 :(得分:0)
似乎还有另一个问题。否则,不需要两次设置WindowState。也许是时候设置这些项目并不合适。 我试过" Window_Loaded"没有成功。现在我在窗口的构造函数中做了一切,一切都很好!