WPF资源字典在应用程序资源

WPF资源字典在应用程序资源

问题描述:

我有四个主要的文件WPF资源字典在应用程序资源

  • 主窗口(对于某些控件)
  • 应用一个简单的资源字典
  • 用户控制
  • 资源字典(对于某些样式)

我希望资源字典中的样式可以跨应用程序访问,所以我可以让我们e在MainWindow和我的UserControl中。

我已经把与源资源字典在我Application.Resources

<ResourceDictionary Source="Assets/ButtonStyle"/> 

然而,当我在主窗口中添加的样式,它说,它无法找到样式的控制。它还表示它需要在Application.Resources的ResourceDictionary标记上使用x:key

我已经将样式导入到Application.Resources中并且它们工作正常。不过,我想将它们放在单独的资源字典文件中,因为我想分发它并保持顺序。

任何帮助大大appricated! :)

添加您ResourceDictionary全球App.xamlResourceDictionaryMergedDictionaries酒店,并告知任何其他资源的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> 
+0

这需要资源字典有一个X:关键,这是不被显示在你的例子中。这是一个屏幕抓取:https://imgur.com/a/Io6IP,并且这也给“Application.Resources”行上的“属性”资源“只能设置一次”提供了额外的错误。 – Krythic