使用windowstate充分最大化WPF窗口
本文关键字:WPF 窗口 最大化 windowstate 使用 | 更新日期: 2023-09-27 18:18:50
我使用下面的代码来改变屏幕的大小:
private void MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
{
switch (WindowState)
{
case (WindowState.Maximized):
{
WindowState = WindowState.Normal;
break;
}
case (WindowState.Normal):
{
WindowState = WindowState.Maximized;
break;
}
}
}
}
然而,当我双击一旦程序开始,我得到一个小的差距沿着窗体的底部。为了增加混乱,当我将窗体的大小重新调整到任何大小(使用拖动移动)时,问题是固定的。有人能解释一下为什么会发生这种情况,以及解决问题的可能方法吗?
为了充分最大化您的窗口,将WindowStyle
设置为None
, ResizeMode
设置为NoResize
, WindowState
设置为Maximized
。
[Update]下面的代码对我来说工作得很好(请注意,我已经重命名了您的事件处理程序,因为您隐藏了事件System.Windows.Controls.Control.MouseDoubleClick
)。它从Kiosk模式(全屏无窗口铬)调整到常规模式没有问题:
private void Window_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
{
switch (WindowState)
{
case (WindowState.Maximized):
ResizeMode = ResizeMode.CanResize;
WindowStyle = WindowStyle.SingleBorderWindow;
WindowState = WindowState.Normal;
break;
case (WindowState.Normal):
ResizeMode = ResizeMode.NoResize;
WindowStyle = WindowStyle.None;
WindowState = WindowState.Maximized;
break;
}
}
}