wpf - XAML ResourceDictionary 相同程序集引用

标签 wpf xaml

我正在开发一个 WPF 控件库,我需要引用在同一程序集中定义的资源字典。

我设法让它与单独的程序集引用一起工作。

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary
             Source="pack://application:,,,/MyLocalAssembly;component/Foo.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

虽然使用相同程序集引用,但它不起作用,并在加载时引发异常(“无法定位资源'Foo.xaml'。”)。 请注意,无论我使用哪种方法,在设计器中一切正常

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary
             Source="pack://application:,,,/Foo.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

最佳答案

不要对资源字典使用绝对路径。只需使用相对路径引用即可。

例如,

<UserControl.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary
             Source="folder/Foo.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</UserControl.Resources>

关于wpf - XAML ResourceDictionary 相同程序集引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17316149/

相关文章:

c# - 打开默认邮件客户端和附件

c# - 向类型 'System.Windows.Controls.ItemCollection' 的集合添加值引发异常

c# - 引用 NET MAUI 中的仅限 Windows 的项目

c# - 了解 MVVM : simple non-working code

.net - 我如何告诉 ContextMenu 将其自身相对于其控件而不是光标放置?

c# - 为什么 client.GetUserDialogsAsync() 抛出错误无法读取 TLSharp 中的数据包长度

c# - 发生更改时,List<string> 不会更新 UI

c# - 如何调试Unity分辨率?

c# - 当前上下文中不存在名称 'Key'

c# - 如何从模板重置文本框的属性文本?仅在xaml中