c# – WPF全屏最大化
发布时间:2020-12-15 04:02:12 所属栏目:百科 来源:网络整理
导读:我基本上想要让我的 WPF窗口进入全屏模式,当按下F11或按下窗口右上角的最大化按钮. 虽然以下功能像一个F11的魅力: private void Window_KeyDown(object sender,KeyEventArgs e){ if (e.Key == Key.F11) { WindowStyle = WindowStyle.None; WindowState = Wi
我基本上想要让我的
WPF窗口进入全屏模式,当按下F11或按下窗口右上角的最大化按钮.
虽然以下功能像一个F11的魅力: private void Window_KeyDown(object sender,KeyEventArgs e) { if (e.Key == Key.F11) { WindowStyle = WindowStyle.None; WindowState = WindowState.Maximized; ResizeMode = ResizeMode.NoResize; } } 这仍将显示Windows任务栏(使用Windows 7进行测试): protected override void OnStateChanged(EventArgs e) { if (WindowState == WindowState.Maximized) { WindowStyle = WindowStyle.None; WindowState = WindowState.Maximized; ResizeMode = ResizeMode.NoResize; } base.OnStateChanged(e); } 我在这里缺少什么?或者我可以做得更优雅吗? 解决方法
WPF似乎在最大化时基于WindowStyle决定是全屏还是尊重任务栏.所以一个kludgy但有效的解决方案是将窗口切换回非最大化,设置WindowStyle,然后将窗口重新设置为最大化:
private bool _inStateChange; protected override void OnStateChanged(EventArgs e) { if (WindowState == WindowState.Maximized && !_inStateChange) { _inStateChange = true; WindowState = WindowState.Normal; WindowStyle = WindowStyle.None; WindowState = WindowState.Maximized; ResizeMode = ResizeMode.NoResize; _inStateChange = false; } base.OnStateChanged(e); } 虽然代码显然是丑陋的,但是过渡到正常然后回到最大化似乎并没有使用户体验更糟.在我的展示中,我注意到F11代码和kludge最大化闪烁,但是在kludge最大化方面没有明显变差.但你的里程可能会有所不同! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |