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;
}`
浙公网安备 33010602011771号