找不到具有名称/键 X 的资源

Posted

技术标签:

【中文标题】找不到具有名称/键 X 的资源【英文标题】:Cannot find a Resource with the Name/Key X 【发布时间】:2018-01-05 06:33:12 【问题描述】:

我使用 Blend 更改了一些控件的样式,它会自动生成一些样式。但是对于一些随机用户会发生此错误:

找不到具有名称/键的资源 PivotPreviousButtonBorderBrush [行:0 位置:0]

键有时是ListViewItemBackground 等。

为什么某些设备中缺少这些默认资源?如何预防? 谢谢。

【问题讨论】:

【参考方案1】:

ListViewItemBackground 最初是在 Windows 10 周年更新 (14393) 中引入的,如果您的用户仍在使用 10586,他们将遇到上面列出的错误。

这就是生成针对 SDK10586 的样式总是更安全的原因。但是,如果您想要新样式,例如在这种情况下,您可以在 App.xaml 中手动定义它们。

要检查所有可用的样式和其他资源,请查看内部每个版本控制文件夹下的所有 generic.xaml 文件

C:\Program Files (x86)\Windows 套件\10\DesignTime\CommonConfiguration\Neutral\UAP

【讨论】:

谢谢贾斯汀。我的应用程序的目标最低为 10240,并且不需要新引入的功能。我如何知道我的 App.xaml 中的任何现有资源是否与旧版本兼容? 我不知道生成样式时可以针对特定的 SDK 您必须运行应用程序才能找到答案。您仍然可以使用更高版本的 sdk 生成样式,但您应该始终在较低的 sdk 上进行测试,以确保没有损坏的资源。没有其他方法可以知道。【参考方案2】:

如果您使用的是 Microsoft.UI.Xaml.Controls 库 - 您应该添加对 app.xaml 的引用:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

【讨论】:

以上是关于找不到具有名称/键 X 的资源的主要内容,如果未能解决你的问题,请参考以下文章

Angular 7:“找不到具有未指定名称属性的控件”

找不到与给定名称匹配的资源 (@style/AppTheme)

使用具有神奇记录的多个键进行排序时找不到键路径

错误:找不到与给定名称匹配的资源:Eclipse 中的 attr 'colorAccent'

找不到与给定名称attr“colorPrimary”匹配的资源

“找不到具有名称的端点元素...”