在 WPF 中,如何引用在不同 XAML 文件中定义的静态资源?它在同一个项目中。
7428 次
2 回答
9
另一个 XAML 文件需要是资源字典。您可以使用当前 ResourceDictionary 的 MergedDictionaries 属性将其合并到当前文件中。请参阅MSDN 上的合并资源字典。他们的例子:
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="myresourcedictionary.xaml"/>
<ResourceDictionary Source="myresourcedictionary2.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Page.Resources>
然后在该 Page 对象中,您可以引用在myresourcedictionary.xaml
或 中定义的静态资源myresourcedictionary2.xaml
。
于 2010-09-02T21:29:10.673 回答
4
“不同的 XAML 文件”可能意味着一些不同的事情:
- App.xaml:资源会自动包含在任何打开的资源树中,因此您无需执行任何额外操作。
- 窗口或页面 .xaml:对象实例的任何子级都可以访问资源,例如在窗口中使用的 UserControl。
- ResourceDictionary:需要显式合并到使用它的资源树上方的某个位置。这可以是 App.xaml、Windowxx.xaml 或一些较低级别的元素。使用 ResourceDictionary.MergedDictionaries 来执行此操作。
还有很多指定路径的替代方法,但这是最简单的:
<Window>
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/MyResourceDict.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
于 2010-09-02T21:32:39.923 回答