4

根据 C# 编译器和 Silverlight 2 文档,Silverlight 没有为 DataTemplate 类提供 FindName 方法。我想在 ContentPresenter 中找到一个边框。SilverLight 2 中最好的方法是什么?

4

2 回答 2

3

如果边框在 DataTemplate 内,而不是 ControlTemplate 内,那么我过去能够做到这一点的唯一方法是使用 VisualTreeHelper 来定位我需要的元素。

于 2008-11-13T20:37:44.600 回答
0

不完全确定我理解这种情况,但既然你提到了 DataTemplate 我假设你正在使用模板。

如果您使用的是模板,那么您所做的就是为您的边框命名 (x:Name="border"),然后覆盖 OnApplyTemplate 方法。在该方法中,您使用 GetTemplateChild 并传递您使用的名称。这将返回对您的边界的引用。

如果您不使用模板并且引用了 ContentPresenter,那么您可以编写一个递归函数来查看子项的 Content 属性,如果它不是边框,则在其内容上调用相同的函数。

于 2008-11-13T20:21:49.903 回答