我正在尝试制作一个加载全屏的WPF应用程序,并让F11键在全屏和窗口之间切换 .
使用以下代码,它首先在全屏模式下正确显示在屏幕上 . 切换将其拉回到常规窗口 .
然后随后的切换它几乎进入全屏模式但似乎向上移动了~10像素,因此任务栏的一半是可见的 . 我能够在一个空主窗口的新WPF项目中重现这一点 .
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
this.WindowState = WindowState.Maximized;
this.WindowStyle = WindowStyle.None;
this.ResizeMode = ResizeMode.NoResize;
this.Topmost = true;
this.PreviewKeyDown +=
(s, e) => {
if (e.Key == Key.F11) {
if (this.WindowStyle == WindowStyle.None) {
this.WindowState = WindowState.Normal;
this.WindowStyle = WindowStyle.SingleBorderWindow;
this.ResizeMode = ResizeMode.CanResize;
this.Topmost = false;
} else {
this.WindowState = WindowState.Maximized;
this.WindowStyle = WindowStyle.None;
this.ResizeMode = ResizeMode.NoResize;
this.Topmost = true;
}
}
};
}
}
这是框架中的错误吗?我不知道我几乎在做什么,但并不完全 . 我已经尝试搞乱其他 Window
设置,但没有运气 . 有任何想法吗?
1 回答
根据这个WPF Discussion,设置
WindowStyle
和WindowState
的顺序很重要 . 你应该在WindowState
之前设置WindowStyle