我使用以下代码更改屏幕大小:
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;
}
}
}
}
但是,当程序启动时我双击,我会在表单底部出现一个小间隙。为了增加混淆,当我将表单重新调整为任何大小(使用拖动移动)时,问题就解决了。有人可以解释为什么会发生这种情况,并解决问题吗?
答案 0 :(得分:3)
要完全最大化您的窗口,请将WindowStyle
设置为None
,将ResizeMode
设置为NoResize
,将WindowState
设置为Maximized
。
[更新] 以下代码适用于我(请注意,我已重命名您的事件处理程序,因为您隐藏了事件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;
}
}
}