小编mmo*_*mod的帖子

WPF强制按下MouseDevice

我在wpf窗口中有一个窗体,我正在尝试使用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);
}
Run Code Online (Sandbox Code Playgroud)

但是每当我从我的处理程序(或我的表单的MouseMove处理程序)检查InputManager.Current.PrimaryMouseDevice时,LeftButton的状态就是"释放".

为什么是这样?由于所有属性都是只读的,我无法想出一种强制它被"按下"的方法.

或者我的方法是错误的,是不可能的?我也尝试在鼠标移动时设置我的窗口的位置,但是一些奇怪的东西发生在我的鼠标值继续回到之前的位置.

谢谢!

编辑:所以我手动调整窗口位置,但仍然希望有人可以告诉我为什么MouseDevice不会在Windows窗体上按下."奇怪的东西发生......"只是我的一个愚蠢的错误,我一直在鼠标移动时重置鼠标坐标,但意识到我的鼠标从不移动相对于窗口,因为窗口也在移动,呃!

c# wpf xaml window winforms

9
推荐指数
1
解决办法
2981
查看次数

标签 统计

c# ×1

window ×1

winforms ×1

wpf ×1

xaml ×1