首页 > 解决方案 > wpf - notifyIcon - 鼠标事件 - 识别鼠标按钮

问题描述

我在 WPF 应用程序中使用 Winforms 中的 notifyIcon。贝娄是我的事件处理程序的一部分:

private void notifyIcon_Logger_MouseDown( object sender, EventArgs e )
{
        var st = e.ToString();
...

我可能不会将 e 参数设为 MouseEventArgs,因为编译器说它不匹配。但即便如此,我看到 st 是“System.Windows.Forms.MouseEventArgs”。那个怎么样?!

我已将 e 固定在 IDE 表面上以观察它以进行调试,并且我看到它有一个成员按钮。我看到类似的东西

Button = Right

但是如果我尝试 e.Button 我会收到错误 CS1061: 'EventArgs' does not contain a definition for 'Button' 所有这些怎么可能?更重要的是,如何识别鼠标按键?

标签: c#wpfmouseeventnotifyicon

解决方案


混合 WPF 和 Winforms 有时会很棘手......

有 2 种类型称为 MouseEventArgs。一种是 System.Windows.Input 命名空间中的 WPF 版本,另一种是 System.Windows.Forms 命名空间中的 Winforms 版本。

通过简单地将其转换为 MouseEventArgs,编译器使用 WPF 表单,因为这是 WPF 应用程序,但您需要 Winforms 版本,因为此特定回调用于 Winforms 控件。所以只需在回调定义中使用正确的命名空间来限定它......

private void notifyIcon_Logger_MouseDown( object sender, System.Windows.Forms.MouseEventArgs e )
{
        var st = e.ToString();
...

推荐阅读