wpf 监听退出事件_c# – 如何捕获(WPF)窗口之外发生的鼠标事件?

我有一个WindowStyle =“None”和AllowTransparency =“True”的Window元素,因此它没有标题栏并支持透明度.

我希望用户能够通过左键单击窗口中的任意位置并拖动窗口将窗口移动到屏幕上的任何位置.只要按下鼠标左键,窗口就会随鼠标拖动.

我能够得到这个功能有一个例外:当鼠标移动到窗口外面(例如当鼠标左键靠近窗口边缘并且鼠标被移动时),窗口不再捕捉鼠标位置,并且不会随鼠标拖动.

以下是我用来完成工作的代码隐藏代码:

public Point MouseDownPosition { get; set; }

public Point MousePosition { get; set; }

public bool MouseIsDown { get; set; }

private void window_MyWindowName_MouseLeftButtonDown(object sender,MouseButtonEventArgs e)

{

MouseDownPosition = e.GetPosition(null);

MouseIsDown = true;

}

private void window_MyWindowName_MouseMove(object sender,MouseEventArgs e)

{

if (MouseIsDown)

{

MousePosition = e.GetPosition(null);

Left += MousePosition.X - MouseDownPosition.X;

Top += MousePosition.Y - MouseDownPosition.Y;

}

}

private void window_MyWindowName_MouseLeftButtonUp(object sender,MouseButtonEventArgs e)

{

MouseIsDown = false;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值