我有一个Windows表单在WPF窗口中,我试图在单击Windows表单时使用
我捕获了我的表单的鼠标按下事件,并使用以下方式触发WPF窗口的MouseLeftButtonDown事件:
DragMove
,它是一个图片框,所以我想通过单击图片来拖动窗口。我捕获了我的表单的鼠标按下事件,并使用以下方式触发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的状态都是“released”。
为什么会这样呢?我无法想出一种强制它变为“pressed”的方法,因为所有属性都是只读的。
或者我的方法根本就是错误的,不可能实现?我也尝试在鼠标移动时设置窗口的位置,但一些奇怪的问题会发生,我的鼠标值会不断返回到前一个位置。
谢谢!
编辑:因此,我正在手动调整窗口位置,但仍希望有人能启发我为什么MouseDevice在Windows表单上没有被按下。 “奇怪的事情发生了……”只是我的愚蠢错误,我在鼠标移动时不断重置鼠标坐标,但意识到我的鼠标相对于窗口永远不会移动,因为窗口也在移动,傻瓜!