在我的应用程序中,我倾向于使用相对路径引用我的资源字典,如下所示:
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/ResourceDictionaries/SplashScreen.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
但是,对于我在我的应用程序中使用的其中一个库(Fluent),我需要的资源字典的引用是不同的(我相信它们被称为Pack URI或者什么?):
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/Fluent;component/Themes/Office2013/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>
<Color x:Key="{x:Static Fluent:MetroColors.ThemeColorKey}">#60327A</Color>
<vm:MainWindowViewModel x:Key="MainWindowViewModel" />
</ResourceDictionary>
</Application.Resources>
我应该引用我的资源词典吗?
答案 0 :(得分:1)
不同之处在于,URI用于访问嵌入资源,链接文件或松散文件。但是,URI可能看起来不同,具体取决于正在访问的资源类型。
“pack URI”中包含三个逗号,其设置与第一个URI不同,因为资源的源是不同的类型。
有关详细信息,请参阅此MSDN文章。
答案 1 :(得分:1)
当资源与正在编译的程序集不同时,需要打包URI。
Fluent URI引用了Fluent程序集。 包://应用:,,, /的流利强>;组件/主题/ Office2013 / Generic.xaml
从理论上讲,你可以参考当前的集会,但除非我必须这样做,否则我从不使用它们,因为它们很难做到这一点!