在我的应用程序中,我使用标记对象。现在我想不仅对放置在表面上的对象做出不同的反应,而且对放置它的元素也做出不同的反应。这有可能吗?我找不到任何关于它的信息。
anon
问问题
148 次
2 回答
2
你可以做一个HitTest。基本上你得到了相对于你的窗口的点,并查看视觉树的哪个元素被击中。手头没有代码示例,但您会在 google 上使用 HitTest 和 WPF 找到很多。
于 2010-11-11T10:42:53.463 回答
1
是的,有可能。请向我们展示您的代码,以便我们更好地帮助您。
您正在寻找的可能是反射。
您是否知道您可以随时使用运算符检查对象是否属于某种类型is
?
var tag = myDependencyObject.Tag;
if(myDependencyObject is CheckBox)
{
//...
}
else if(myDependencyObject is TextBox)
{
//...
}
要检测标记属性的更改,请像这样监听 DependencyPropertyChanged 事件:
DependencyPropertyDescriptor prop = DependencyPropertyDescriptor.FromProperty(
FrameworkElement.TagProperty,
typeof(FrameworkElement));
prop.AddValueChanged(aTaggedControl, this.YourEventHandlerMethod);
于 2010-11-01T16:06:48.790 回答