.NET MAUI中的鼠标悬停检测

4
我希望在.NET MAUI中检测鼠标悬停在可视元素上(如按钮)。 我找不到任何关于此的“onmouseover”/“ismouseover”事件。我该如何实现这个功能?
2个回答

2
所有请求以“桌面”方式控制键盘和鼠标的问题都被整合在Maui问题:桌面平台:鼠标和键盘下。
jfversluis在该问题或相关问题上的评论表明,目前还没有计划在这个领域进行任何工作。该问题是讨论该主题的地方(表示兴趣,或添加任何特定要求或用例),直到有一个计划为止。
在此之前,解决方法通常是在Maui项目的Windows文件夹中编写仅限于Windows的代码。
不幸的是,对于鼠标来说,这只会给出窗口或桌面相关的鼠标信息。据我所知,目前没有简单的方法来在鼠标移动时与单个UI元素交互。(因为Maui最初是作为Xamarin移动跨平台代码而开始的,触摸设备没有将光标移动到屏幕周围的概念。)
一种粗略的hack方法是使用AbsoluteLayout:将UI元素定位在准确的位置,以便您知道它们在哪里,然后编写(仅限于Windows的)代码来执行自己的“检测”。
更高级的方法是编写遍历窗口“可视树”的UI元素的代码,以检测鼠标所在的控件。Maui必须在某个地方内部具有这样的逻辑,以处理触摸事件。除非它依赖于每个平台的UI代码来决定。待定。
目前,Maui对于可以使用“触摸”范例而不是“桌面”范例的应用程序是有意义的。

1

这不是一个确切的答案,但是作为建议,您可以尝试确定鼠标何时悬停在VisualElement上,然后使用StateTriggers主动应用VisualState

MAUI触发器


1
帮助他人是非常好的事情。但同时,如果回答含糊不清,那对于正在寻求帮助的人来说就更加困难了。就您的问题而言,它要求找到适合触发事件的方式。但是您却在建议如何在触发事件后执行其他操作。请重新阅读问题。 - Gayan Kavirathne
1
虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。如果链接页面更改,仅有链接的答案可能会失效。-【来自审查】 - Iavor Orlyov
1
@GayanKavirathne - 虽然我同意如果这个答案中有代码片段会更好,但我不同意你对问题的理解。问题说要检测鼠标悬停,并提到onmouseover,这将是鼠标悬停时执行的代码。问题中没有关于触发鼠标悬停的内容。事实上,“触发”鼠标悬停是不可能的;当鼠标悬停时,它就悬停了,这不是程序员可以控制的东西。 - ToolmakerSteve
我理解我评论中的错误。这是我最初阅读问题时的误解。 - Gayan Kavirathne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接