WPF 禁止移动系统标题栏
程序员文章站
2022-03-07 16:01:13
...
需求
有些时候需要我们的窗口一直保持最大化,但此时拖动标题栏会改变窗口的大小或位置,不符合我们的需求
解决方案
窗口标题栏有个*PreviewMouseMove*事件,我们监听此事件,在方法中监听鼠标左键的状态,当鼠标左键状态为按下时标记为已处理即可。
实例代码
1.在标题栏中添加对PreviewMouseMove事件的处理程序
<Window ... PreviewMouseMove="Window_PreviewMouseMove" ...>
<Grid>
...
</Grid>
</Window>
2.在处理程序中处理鼠标左键按下事件
private void Window_PreviewMouseMove(object sender, MouseEventArgs e)
{
if(MouseButtonState.Pressed == e.LeftButton)
{
e.Handled = true;
}
}