WindowChrome使用之最大化窗口拖动失败

背景:今天遇到一个奇怪的问题,窗口最大化之后,从屏幕外开始手指移动到窗口标题栏,窗口不跟随手指移动。
对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 设置为零来隐藏边框,正常状态下将其恢复。
代码很简单,但是找到问题花费了我半天的时间,特此记录。

你可能感兴趣的:(WPF)