![](/img/trans.png)
[英]Can I get a MouseLeave event while Mouse.Capture() is active?
[英]WPF Mouse.Capture causes window to freeze
我有一个WPF图表,并在图表上创建了一个拖动滚动滚动窗口。 我实质上是遵循MouseDown-MouseMove-MouseUp序列来跟踪滑动窗口的移动。 我要管理在图表区域之外发生MouseDown之后MouseMove / MouseUp的情况。 为此,我在MouseDown上执行Mouse.Capture(Chart)
并在MouseUp上释放捕获。 但是每当发生MouseDown时,我的窗口就会挂起。 我究竟做错了什么?
尝试使用此:
Mouse.Capture (Chart, CaptureMode.SubTree)
也许您不是从Window或UserControl或其他UIElement处理鼠标事件,而是在不是从UIElement继承的特定元素上处理鼠标事件? 您需要使用
<UserControl x:Class="...
MouseDown="HandleMouseDown"
.../>
代替
<ListBox x:Name="...
MouseDown="HandleMouseDown"
.../>
实际上,窗口是否完全挂起或只是对鼠标单击没有反应(机器人在键盘上做了)?
我遇到过同样的问题。 我的问题是,由于某种原因,鼠标捕获会立即调用MouseMove事件,并且由于我的鼠标移动事件希望在MouseDown中实例化Rectangle而导致崩溃。 当然,它仍然为空。
所以堆栈看起来像这样:
MouseDown
MouseCapture
MouseMove
then returns to where it left off in MouseDown
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.