0

我对 Windows 8 感到困惑,因为我习惯于访问我在页面中定义的模板,如下所示:

  FrameworkElement element = container as FrameworkElement;
  DataTemplate myTemplate = element.FindResource("myTemplate") as DataTemplate;

问题是在 Windows 8 中 FindResource 方法似乎不再存在。我尝试访问资源字典但没有任何成功。

你有什么想法,或者前面的例子应该工作吗?

谢谢

4

1 回答 1

1

FrameworkElement 有一个Resources 属性,您可以通过它的索引器访问它,如下所示:

var template = element.Resources["myTemplate"] as DataTemplate;

此属性仅填充在该元素上定义的资源,而不是应用程序中资源的完整集合。因此,是否会找到该模板取决于您在哪里定义。

您可以找到 App.xaml 中定义的资源(以及它的合并资源字典),如下所示:

var template = Application.Current.Resources["myTemplate"] as DataTemplate;
于 2012-08-06T23:35:21.033 回答