c# - 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' 所有这些怎么可能?更重要的是,如何识别鼠标按键?
解决方案
混合 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();
...
推荐阅读
- android - 为什么 PreferenceScreen 在 sdk 版本 28 中显示不正确?如何解决?
- c - 头文件后的 GCC 选项 -save-temps 数字
- java - 每次侦听器执行时如何更改面板的图形?
- angularjs - 路由提供者不重定向
- java - 两个整数数组的串联和
- json - 使用 jq 循环一个 json 文件
- android - NestedScrollView 内的 NestedScrollView 不滚动
- glsl - 如何避免关于未使用的顶点输入的验证层错误?
- javascript - 如何在 .map 中创建的一堆其他下拉列表中仅触发一个下拉列表
- node.js - 测量用户使用 nodejs 下载图像需要多长时间