wpf - notifyIcon - 鼠标事件 - 识别鼠标按钮

时间:2018-04-27 20:28:58

标签: c# wpf mouseevent notifyicon

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

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

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

我已经在IDE表面上固定e以观察它以进行调试,我看到它有一个成员Button。我看到像

这样的东西
Button = Right

但如果我尝试e.Button,我会 错误CS1061:'EventArgs'不包含'Button'的定义 这一切怎么可能?更重要的是,如何识别鼠标按钮?

1 个答案:

答案 0 :(得分:0)

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

有两种叫做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();
...