C# WPF鼠标。捕获导致窗口冻结

C# WPF鼠标。捕获导致窗口冻结,c#,wpf,C#,Wpf,我有一个WPF图表,我正在图表上创建一个拖放滚动滑动窗口。我基本上是按照MouseDown MouseMove MouseUp序列来跟踪滑动窗口的移动。我想管理在图表区域外发生鼠标下移后出现鼠标移动/鼠标移动的情况。为此,我在MouseDown上做了一个Mouse.Capture(图表),并在MouseUp上发布了这个捕获。但每当鼠标落下时,我的窗户就会挂起来。我做错了什么 尝试使用以下方法: Mouse.Capture (Chart, CaptureMode.SubTree) 也许您不是从W

我有一个WPF图表,我正在图表上创建一个拖放滚动滑动窗口。我基本上是按照MouseDown MouseMove MouseUp序列来跟踪滑动窗口的移动。我想管理在图表区域外发生鼠标下移后出现鼠标移动/鼠标移动的情况。为此,我在MouseDown上做了一个
Mouse.Capture(图表)
,并在MouseUp上发布了这个捕获。但每当鼠标落下时,我的窗户就会挂起来。我做错了什么

尝试使用以下方法:

Mouse.Capture (Chart, CaptureMode.SubTree)

也许您不是从Window或UserControl或其他UIElement处理鼠标事件,而是在不从UIElement继承的特定元素上处理鼠标事件? 你需要使用

<UserControl x:Class="...
          MouseDown="HandleMouseDown" 
          .../>


实际上,窗口是完全挂起还是对鼠标点击没有反应(键盘上的机器人操作)?

我也有同样的问题。我的问题是,由于某种原因,鼠标捕获会立即调用MouseMove事件,而我遇到了崩溃,因为我的mouse move事件希望在MouseDown中实例化一个矩形。当然还是空的

因此,堆栈如下所示:

MouseDown 
  MouseCapture 
    MouseMove
then returns to where it left off in MouseDown

您可能编写了在MouseDown事件中进入循环的代码。不可能知道你有没有,你没有发布任何代码。
MouseDown 
  MouseCapture 
    MouseMove
then returns to where it left off in MouseDown