【问题标题】:How to recognize mouse wheel in MAUI view for desktop application如何在桌面应用程序的 MAUI 视图中识别鼠标滚轮
【发布时间】:2021-12-30 06:53:13
【问题描述】:

如何在 MAUI 平台上获得 MacCatalyst 和 windows 鼠标滚轮交互的通知。

【问题讨论】:

    标签: macos desktop-application maui


    【解决方案1】:

    答案 1:滚动。

    你想基于鼠标滚轮交互做什么?如果您只是想滚动,或者知道何时发生了滚动,那么您可以依赖 ScrollView 和其他自行处理滚动的视图。例如。 ScrollView.Scrolled event.


    答案2:鼠标滚轮的一般用途。

    鼠标或键盘的输入功能尚未在 MAUI 中实现。也没有最终确定规范。

    Here is one mouse proposal.

    您可以对该提案添加评论,要求包括鼠标滚轮支持。

    但是,这可能不在 MAUI 的第一个版本中,因为当前的重点是稳定所有平台(包括移动)所需的功能,其中一些平台没有鼠标。


    如果有人想知道“这不应该在 .net 6 中指定吗?” (然后 MAUI 会简单地使用它。)

    在显示器(视图或窗口)上发生的事情与应如何处理鼠标/键盘输入之间存在交互 - 将输入放在与屏幕显示相同的代码库中是有意义的 - 因此 MAUI 是一个好地方。

    特别是考虑到触摸是 MAUI 的一部分。


    在此之前,解决方案是在每个平台上创建一个DependencyService,以引用您需要的平台API。

    令人惊讶的是,我没有找到任何人为 Windows 和 Mac 上的鼠标做过的。

    除了“隐式”之外,因为鼠标的使用类似于触摸设备。并且可以在键盘上键入文本。关键是没有特定于功能的 API,只有在您拥有物理鼠标(滚轮)或物理键盘(全局键盘挂钩)时才有意义。


    待定我会进一步调查。

    基本方法是查看 WinUI 3 使用什么作为输入 API。

    在 Windows 桌面应用程序上,转发到这些输入 API。在其他平台(Mac、Linux)上编写适配器。

    我会看看 Uno Platform 或 Avalonia 是否采用了这种方法。

    【讨论】:

    • 我已经实现了自己的处理程序来检测windows的鼠标事件,同样尝试到mac,添加了点击手势和平移手势,是否可以检测鼠标左键或右键单击平移手势?和鼠标滚轮滚动增量?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多