【问题标题】:ResourceDictionary not found in editor, works at runtime在编辑器中找不到 ResourceDictionary,在运行时工作
【发布时间】:2017-06-01 09:57:46
【问题描述】:

在我的 WPF 应用程序中,我尝试从外部程序集加载资源字典。

它在设计器中带有下划线,并带有一条消息“定位...时发生错误”(我的消息是法语,所以不确定确切的英文版本)。

这是我的 App.xaml 中的内容:

<Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MYNAMESPACE;component/Themes/MYFILE.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.AnimatedTabControl.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MYNAMESPACE;component/Styles/MYFILE.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

与 MYNAMESPACE 相关的两行带有下划线的消息。我留下了 Mahapps 的,因为它们工作正常并且没有下划线。我删除了这些名称,因为它们与我的公司有关。

我在这里发现一些东西说 xaml 构建操作应该是“资源”(here),但有人说这可能会导致问题。 Mahapps 中的 xaml 文件是“Page”(也是我的),并且工作正常。

我的程序集是“用户控件库”类型的项目。

【问题讨论】:

    标签: c# wpf xaml resourcedictionary


    【解决方案1】:

    我记得在同样的问题上苦苦挣扎。我不记得究竟是什么解决了我的问题,但这是我设置它的方式。

    资源字典 (xaml) 的 Build Action 设置为 Page。所以我很确定你的假设是正确的。

    包含外部资源字典的项目是我正在使用的相同解决方案的一部分。所以我引用的字典如下:

    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/MY.NAMESPACE;component/MyExternalDictionary.xaml" />
                <ResourceDictionary Source="/MY.NAMESPACE;component/MYFILE.xaml" />
                <ResourceDictionary Source="MyInternalDictionary.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
    

    这似乎对我有用,但我不记得这是否是我为解决它所做的全部。
    因此,如果这仍然不起作用,也可能是由 缺少参考 引起的。如果您的外部资源字典之一引用了某些内容,则可能也必须将其添加到您当前的项目中。

    【讨论】:

    • 我像你一样写了它,没有“pack...”,还在 DEBUG 和 RELEASE 之间切换,出于某种原因它修复了它。我之前重新启动了我的项目(没有修复它)所以我不知道发生了什么!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多