关于用户控件的鼠标事件控制范围的问题

xiaoshisanlang1st 2014-07-20 01:32:24
自己做了个控件,是一个模拟摇杆的控件,鼠标点住摇杆,可以左右拖动模拟操作摇杆,但现在问题的鼠标操控的范围。
目前用的是整个控件的mousemove事件,可问题是当鼠标移动出控件的范围时,事件就捕获不到了。

我想实现的类似于原生的slider控件,鼠标可以抓着不放,在屏幕任意位置移动,slider都会跟着做出对应得移动效果
请问它是用什么事件实现的?
...全文
122 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxgclj 2014-07-24
  • 打赏
  • 举报
回复
capturemouse和releasemouse不行吗?可以试下.
窗前旧时光 2014-07-23
  • 打赏
  • 举报
回复
引用 3 楼 xiaoshisanlang1st 的回复:
[quote=引用 1 楼 wshent 的回复:] 第一种方式是在Mousedown事件在你的控件中接收 mousemove在整个窗口中接收 第二种是起个定时器 判断鼠标左键是否已经弹起
第一种方法能否说的详细点[/quote] 例如你的摇杆肯定是放在一个window里面的 那么你在摇杆这个面板里面接收mousedown事件,判断鼠标点下了,回调给window 然后在window里面的mousemove响应事件中判断是否获到了之前那个mousedown的回调,如果是的话,就将每次mousemove的坐标射给摇杆 进行处理
xiaoshisanlang1st 2014-07-21
  • 打赏
  • 举报
回复
引用 2 楼 jianqiu000 的回复:
1,你可以按照坐标轴的方式进行事件侦听,这是针对整个舞台的。 2,角度,根据摇杆原点的相对角度进行事件侦听。 3,可以用click,也可以用其他事件侦听。
按坐标轴的方式监听是具体是什么呀
xiaoshisanlang1st 2014-07-21
  • 打赏
  • 举报
回复
引用 1 楼 wshent 的回复:
第一种方式是在Mousedown事件在你的控件中接收 mousemove在整个窗口中接收 第二种是起个定时器 判断鼠标左键是否已经弹起
第一种方法能否说的详细点
TheMadMan 2014-07-20
  • 打赏
  • 举报
回复
1,你可以按照坐标轴的方式进行事件侦听,这是针对整个舞台的。 2,角度,根据摇杆原点的相对角度进行事件侦听。 3,可以用click,也可以用其他事件侦听。
窗前旧时光 2014-07-20
  • 打赏
  • 举报
回复
第一种方式是在Mousedown事件在你的控件中接收 mousemove在整个窗口中接收 第二种是起个定时器 判断鼠标左键是否已经弹起

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧