背景:今天遇到一个奇怪的问题,窗口最大化之后,从屏幕外开始手指移动到窗口标题栏,窗口不跟随手指移动。
对WindowChrome并不是很了解,查了查文档,知道了WindowChrome是什么,怎么使用。
官方文档:https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.shell.windowchrome?view=windowsdesktop-8.0
大佬博客:https://www.cnblogs.com/choumengqizhigou/p/15739993.html
我的问题是怎么解决的呢,是通过设置 ResizeBorderThickness属性,
ResizeBorderThickness :用于调整窗口大小的边框宽度,定义了窗口边缘的厚度,以便进行调整大小操作。
好了直接上代码。
xaml
<WindowChrome.WindowChrome><WindowChrome GlassFrameThickness="0,1,0,0"CaptionHeight="30" CornerRadius="5" NonClientFrameEdges="None" UseAeroCaptionButtons="False"/></WindowChrome.WindowChrome>
后台代码
private void Window_StateChanged(object sender, EventArgs e){if (WindowState == WindowState.Maximized){WindowChrome.SetWindowChrome(this, new WindowChrome { ResizeBorderThickness = new Thickness(0) });}else{WindowChrome.SetWindowChrome(this, new WindowChrome { ResizeBorderThickness = new Thickness(6) });}}
最大化通过将ResizeBorderThickness 设置为零来隐藏边框,正常状态下将其恢复。
代码很简单,但是找到问题花费了我半天的时间,特此记录。