我在wpf窗口中有一个窗体窗体,当我单击窗体窗体时,我试图使用DragMove
,这是一个图片框,所以我想能够拖动窗口通过点击图片。WPF强制MouseDevice被按下
我赶上我的窗体的鼠标下来,并与提高WPF窗口的MouseLeftButtonDown事件:
if (e.Button == MouseButtons.Left)
{
MouseDevice mouseDev = InputManager.Current.PrimaryMouseDevice;
MouseButtonEventArgs mouseEvent = new MouseButtonEventArgs(mouseDev, 0, MouseButton.Left)
{
RoutedEvent = MouseLeftButtonDownEvent
};
RaiseEvent(mouseEvent);
}
然而,每当我从我的处理程序(或我的窗体的MouseMove处理程序)检查InputManager.Current.PrimaryMouseDevice的LeftButton的状态是“释放”。
这是为什么?由于所有属性都是只读的,我无法想出强制它被“按下”的方法。
或者是我的方法只是错误的,是不可能的?我也尝试在鼠标移动时设置我的窗口的位置,但是一些奇怪的东西发生在我的鼠标值继续回到先前位置的地方。
谢谢!
编辑:所以我手动调整窗口的位置,但仍然希望有人可以启发我为什么MouseDevice不被按下在窗体上。 “奇怪的东西发生......”只是一个愚蠢的错误,我一直在重新设置鼠标移动的鼠标坐标,但意识到我的鼠标从不会相对于窗口移动,因为窗口也在移动,呵呵!
嘛不太;因为我是点击+拖动,当MouseDown事件被击中时,活动状态应该仍然是“按下”,但是它没有被按下。也许它与Windows窗体有关。当我在表单外单击时,它会告诉我鼠标被按下,但是如果我单击表单内部,则不会。 – mmod 2010-10-28 19:02:30