Visual Studio扩展鼠标按钮事件不起作用

问题描述 投票:-1回答:1

我有一个带有(异步)工具窗口的Visual Studio扩展。工具窗口中有一个UserControl,控件中有一个Image,我使用WriteableBitmap作为源。基本上,我试图在工具窗口上使用图形API(Vulkan)。

基本上,我的扩展程序看起来类似于Visual Studio的3d模型编辑器。

我的问题是,当我单击工具窗口时,没有像MouseLeftButtonDownPreprocessMouseLeftButtonDown这样的鼠标事件处理程序被调用。我曾尝试向UserControlImage甚至HwndHost添加鼠标事件处理程序,但没有成功。

[我知道IMouseProcessor或其他变体,但在我看来,它们用于文本编辑器,而不仅仅是工具窗口窗格或用户控件。

HwndHostWndProc方法似乎也不接收任何鼠标事件。通过替换父Hwnd的WndProc来简单地“简化”它似乎可行,但是我不想创建一个扩展来控制整个Visual Studio。]

==编辑==

public partial class MyControl : UserControl {
    public MyControl () {
        InitializeComponents ();
        MouseLeftButtonDown += MyLeftButtonDown;
    }
    ...
    private void MyLeftButtonDown (object sender, MouseButtonEventArgs e) {
        // This code never gets executed.
    }
}

也不是这些。

<UserControl ...
             IsHitTestVisible="True"
             MouseLeftButtonDown="MyLeftButtonDown ">
    <Image x:Name="View" ... />
    <!--- nor this --->
    <!--- <Image x:Name="View" MouseLeftButtonDown="MyLeftButtonDown " /> --->
</UserControl>

这也不起作用。

public partial class MyControl : UserControl {
    public MyControl () {
        InitializeComponents ();
        // View is an object of Image class.
        View.MouseLeftButtonDown += MyLeftButtonDown;
    }
    ...
    private void MyLeftButtonDown (object sender, MouseButtonEventArgs e) {
        // This code never gets executed.
    }
}
    

我有一个带有(异步)工具窗口的Visual Studio扩展。工具窗口中有一个UserControl,控件中有一个Image,我使用WriteableBitmap作为源。基本上,我正在尝试使用...

c# wpf visual-studio-2019 visual-studio-extensions vsix
1个回答
0
投票

我还没有弄清楚如何用ImageUserControl处理鼠标输入,但是我想出了HwndHost的鼠标输入。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.