我可以在运行时将“StaticResource”应用于元素吗?

时间:2011-11-20 12:39:45

标签: xaml windows-phone-7 resources

我可以在运行时将“StaticResource”应用于元素吗?

我知道我可以在xaml文件中使用“StaticResource”元素。但是,我想知道如何在C#(代码隐藏)中使用它。

2 个答案:

答案 0 :(得分:3)

StaticResource是一个静态定义的资源,通常在<X.Resources>元素中为任何元素或页面定义。

在C#中,您只需使用X.Resources["MyResource"]访问它,就像您应该{StaticResource MyResource}一样。

答案 1 :(得分:2)

并非真正具有相同的含义。 StaticResources是“静态的”,因为它们的值在Xaml解析期间被解析。 XamlParser将通过检查资源字典来解析资源,该资源字典还包含相同xaml 中的祖先FrameworkElement Resource属性,然后在必要时检查Application.Resources。

如果您碰巧知道在哪里找到要使用C#代码分配的资源,那么就像在Claus的答案中一样简单。但是,如果您只知道资源的名称,而不知道它在哪个字典中找到的那么多的小问题。

可以使用VisualTreeHelper查看所有Resource来编写一个例程(您可以在SO或Web上的其他位置找到一个例程)来查找可视树。物业沿途。你可能可以逃脱这一点,但请注意,这可能会搜索比原始Xaml版本更多的词典,并且它可能会让你获得一些意想不到的价值。