在我的应用程序中,我使用标记对象。现在,我不仅要对放置在曲面上的对象做出不同的反应,还要对放置它的元素做出不同的反应。这有可能吗?我找不到任何有关它的信息。
答案 0 :(得分:2)
你可以做一个HitTest。基本上,您可以获得相对于窗口的点,并查看可视树的哪个元素被击中。手头没有代码示例,但您会在google上找到很多使用HitTest和WPF的内容。
答案 1 :(得分:1)
是的,有可能。请告诉我们您的代码,以便我们为您提供更好的帮助。
您正在寻找的可能是反思。
您是否知道可以随时使用is
运算符检查对象是否属于某种类型?
var tag = myDependencyObject.Tag;
if(myDependencyObject is CheckBox)
{
//...
}
else if(myDependencyObject is TextBox)
{
//...
}
要检测Tag-Property的更改,请像这样收听DependencyPropertyChanged事件:
DependencyPropertyDescriptor prop = DependencyPropertyDescriptor.FromProperty(
FrameworkElement.TagProperty,
typeof(FrameworkElement));
prop.AddValueChanged(aTaggedControl, this.YourEventHandlerMethod);