如何动态引用ResourceDictionary,无需文件路径

时间:2014-10-11 23:04:25

标签: c# wpf xaml resourcedictionary

有没有办法或解决方法来“动态”引用ResourceDictionary字典,例如StaticReference或动态路径,所以在这种情况下:

<UserControl>
    <UserControl.Resources>
        <ResourceDictionary Source="../../Styles/Style.xaml" />
    </UserControl.Resources>

</UserControl>

当我将此用户控件移动到解决方案中的另一个文件夹时,我不需要更新样式的路径?

谢谢!

2 个答案:

答案 0 :(得分:0)

如果您想实现这一点,您可以将这些xaml代码放在App.xaml中,这将是全局资源,您无需在UserControl中引用它

答案 1 :(得分:0)

您必须更新路径,因为它相对于用户控件标记的位置

根据Pack URIs in WPF

  

绝对与相对包URI

     

默认情况下,相对包URI被认为是相对于包含引用的标记或代码的位置。但是,如果使用前导反斜杠,则相对包URI引用将被视为相对于应用程序的根。

假设"../.."将您带到应用程序的根目录(App.xaml所在的位置),您可以将路径定义为以下

<UserControl>
    <UserControl.Resources>
        <ResourceDictionary Source="/Styles/Style.xaml" />
    </UserControl.Resources>
</UserControl>