繁体   English   中英

WPF Mouse.Capture导致窗口冻结

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM