通用Windows/Windows Phone 8.1 (WinRT)应用程序合并资源字典导致错误

本文关键字:Windows 资源 合并 字典 错误 应用程序 WinRT Phone 通用 | 更新日期: 2023-09-27 18:09:05

我有一个Windows 8.1 (WinRT)应用程序和一些UI类库,我试图合并资源字典彼此更好地分割我的资源。我有以下三个项目的资源:

Framework.UI。通用类库

这是泛型。xaml文件包含在这个项目的Themes文件夹中:

<ResourceDictionary>
    <!-- Contains some resources used by Windows and Windows Phone -->
</ResourceDictionary>

Framework.UI。Windows类库

这是另一个泛型。xaml文件包含在这个项目的Themes文件夹中。正如你所看到的,我正在从通用项目中合并资源字典,以及添加其他资源。

<ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="ms-appx:///Framework.UI.Universal/Themes/Generic.xaml"/>
    </ResourceDictionary.MergedDictionaries>
    <!-- Contains Windows specific resources -->
</ResourceDictionary>

MyApp。Windows (Windows 8.1 App Project)

这是我的Windows 8.1应用程序。我正在合并Windows特定的资源字典到App.xaml文件,以及添加应用程序特定的资源。

<Application x:Class="CurrencyConverter.Client.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:InfrastructureViews="using:Infrastructure.Client.Views"
             RequestedTheme="Light">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="ms-appx:///Framework.UI.Windows/Themes/Generic.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <!-- Contains Windows app specific resources -->
        </ResourceDictionary>
    </Application.Resources>
</Application>

理论上这应该可以工作,但是我在启动时得到一个异常,错误信息如下:

在合并资源字典中检测到循环

通用Windows/Windows Phone 8.1 (WinRT)应用程序合并资源字典导致错误

重命名泛型。将Universal项目中的xaml设置为UniversalGeneric。Xaml解决了这个问题。