2017-06-29 119 views
1

我有四個主要的文件WPF資源字典在應用程序資源

  • 主窗口(對於某些控件)
  • 應用一個簡單的資源字典
  • 用戶控制
  • 資源字典(對於某些樣式)

我希望資源字典中的樣式可以跨應用程序訪問,所以我可以讓我們e在MainWindow和我的UserControl中。

我已經把與源資源字典在我Application.Resources

<ResourceDictionary Source="Assets/ButtonStyle"/> 

然而,當我在主窗口中添加的樣式,它說,它無法找到樣式的控制。它還表示它需要在Application.Resources的ResourceDictionary標記上使用x:key

我已經將樣式導入到Application.Resources中並且它們工作正常。不過,我想將它們放在單獨的資源字典文件中,因爲我想分發它並保持順序。

任何幫助大大appricated! :)

回答

3

添加您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