gpt4 book ai didi

c# - 如何检测鼠标是否直接在 WPF 中的对象类型上

转载 作者:太空宇宙 更新时间:2023-11-03 18:34:19 24 4
gpt4 key购买 nike

我需要检测(真或假)我的鼠标是否在特定类型的对象上。许多对象使用一个数据模板。我不需要对象实例的任何东西,我只需要检测我的鼠标是否在 UI 上的此类元素上方。

应该是这样的:

If(mouse.DirectlyOver == StorageElementWrapper)
{
...
}

编辑:我的错误是我像变量一样使用我的类型

最佳答案

重要的是要注意 DirectlyOver很可能会在您的元素中找到某些东西,而不是您实际要查找的元素。要使用此属性,您需要查看 DirectlyOver 元素的父树。沿着这些思路,FindAncestorOrSelf 来自 this blog post :

if (Util.FindAncestorOrSelf<StorageElementWrapper>((DependencyObject)mouse.DirectlyOver) != null)
{
...
}

或者,如果您有对 StorageElementWrapper 的代码引用(在本例中,在名为 myWrappers 的集合中)并且它们派生自 UIElement,这可能是更好的方法,使用 IsMouseOver属性:

if (myWrappers.Any(x => x.IsMouseOver))
// do something

关于c# - 如何检测鼠标是否直接在 WPF 中的对象类型上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17598443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com