一、
/// <summary>
/// 任意位置拖动窗体
/// </summary>
/// <param name="e"></param>
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
if (e.LeftButton == MouseButtonState.Pressed)
{
this.DragMove();
}
}
二、
/// <summary>
/// 有条件的拖动窗体
/// </summary>
/// <param name="e"></param>
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
base.OnMouseLeftButtonDown(e);
// 获取鼠标相对控件位置 (grid_main为控件Name)
Point position = Mouse.GetPosition(grid_main);
// 如果鼠标位置在控件内,允许拖动
if (e.LeftButton == MouseButtonState.Pressed)
{
if (position.X >= 0 && position.X < grid_main.ActualWidth && position.Y >= 0 && position.Y < grid_main.ActualHeight)
{
this.DragMove();
}
}
}