WPF 窗口拖动
WPF 窗口拖动
WPF 窗口拖动
WPF拖动通过DragMove()方法实现,下面具体讨论:
1. WPF局部窗口拖动
前台页面
`<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<!--示例第二行可拖动-->
<RowDefinition/>
</Grid.RowDefinitions>
<!--设置几近透明背景,点击空白区也可拖动-->
<Grid Grid.Row="1" Background="#01FFFFFF" MouseDown="Grid_MouseDown">
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="100" Text="可拖动区域"/>
</Grid>
</Grid>`
逻辑代码
`private void Grid_MouseDown(object sender, MouseButtonEventArgs e)
{
this.DragMove();
// 设置此属性可以防止拖动到屏幕边缘,窗体最大化
this.ResizeMode = ResizeMode.NoResize;
}`
2. WPF 拖动窗口限制在屏幕显示区域内
在逻辑代码里添加限制,添加限制后的逻辑代码如下:
` private void Grid_MouseDown(object sender, MouseButtonEventArgs e)
{
this.DragMove();
// 设置此属性可以防止拖动到屏幕边缘,窗体最大化
this.ResizeMode = ResizeMode.NoResize;
if (Top < SystemParameters.VirtualScreenTop)
Top = SystemParameters.VirtualScreenTop;
if (Left < SystemParameters.VirtualScreenLeft)
Left = SystemParameters.VirtualScreenLeft;
if (Left + Width > SystemParameters.VirtualScreenLeft + SystemParameters.VirtualScreenWidth)
Left = SystemParameters.VirtualScreenLeft + SystemParameters.VirtualScreenWidth - Width;
if (Top + Height > SystemParameters.VirtualScreenTop + SystemParameters.VirtualScreenHeight)
Top = SystemParameters.VirtualScreenHeight + SystemParameters.VirtualScreenTop - Height;
}`
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器