WPF资源字典在应用程序资源
问题描述:
我有四个主要的文件WPF资源字典在应用程序资源
- 主窗口(对于某些控件)
- 应用一个简单的资源字典
- 用户控制
- 资源字典(对于某些样式)
我希望资源字典中的样式可以跨应用程序访问,所以我可以让我们e在MainWindow和我的UserControl中。
我已经把与源资源字典在我Application.Resources
<ResourceDictionary Source="Assets/ButtonStyle"/>
然而,当我在主窗口中添加的样式,它说,它无法找到样式的控制。它还表示它需要在Application.Resources的ResourceDictionary标记上使用x:key。
我已经将样式导入到Application.Resources中并且它们工作正常。不过,我想将它们放在单独的资源字典文件中,因为我想分发它并保持顺序。
任何帮助大大appricated! :)
答
添加您ResourceDictionary
全球App.xaml
ResourceDictionary
的MergedDictionaries
酒店,并告知任何其他资源的x:Key
:
<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/ButtonStyle"/>
</ResourceDictionary.MergedDictionaries>
<SolidColorBrush x:Key="myBrush1" Color="Blue" />
<SolidColorBrush x:Key="myBrush2" Color="Red" />
</ResourceDictionary>
</Application.Resources>
</Application>
这需要资源字典有一个X:关键,这是不被显示在你的例子中。这是一个屏幕抓取:https://imgur.com/a/Io6IP,并且这也给“Application.Resources”行上的“属性”资源“只能设置一次”提供了额外的错误。 – Krythic