如何在 App.xaml 文件的 Application.Resources 中组合 LocalizedStrings 和 ResourceDictionary 标签
How to Combine LocalizedStrings and ResourceDictionary tags in the Application.Resources of the App.xaml file
我想在 Windows Phone 8 应用程序中使用样式文件和 LocalizedStrings 文件作为资源,使用 App.xaml。
我知道要将样式文件添加为资源,我们可以使用:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/Resources/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
并将 LocalizedStrings 声明为我们可以使用的资源:
<Application.Resources>
<local:LocalizedStrings xmlns:local="clr-namespace:Localizzazione" x:Key="LocalizedStrings"/>
</Application.Resources>
两者在我的应用程序中都运行良好。但是我在尝试同时使用这两种资源时遇到了一些问题。
Visual Studio 阻止我在 ResourceDictionary 标签上方添加 LocalizedStrings 标签,要求我提供密钥,VS 也阻止我在 ResourceDictionnary 标签内添加 LocalizedString 标签。但是当我执行以下操作时 VS 很安静:
<Application.Resources>
<local:LocalizedStrings xmlns:local="clr-namespace:Localizzazione" x:Key="LocalizedStrings"/>
<ResourceDictionary x:Key="MyAppDict">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/Resources/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
但是当 运行 应用程序时,我得到一个带有附加信息的 XamlParseException
:无法分配给 属性 System.Windows.ResourceDictionnary.Source
。
那么您知道如何在 App.xaml 文件中合并这两种资源吗?
您可以使用以下代码添加两者。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="./Resources/ThemeResources.xaml"/>
</ResourceDictionary.MergedDictionaries>
<local:LocalizedStrings xmlns:local="clr-namespace:Localizzazione" x:Key="LocalizedStrings"/>
</ResourceDictionary>
</Application.Resources>
我在我的应用程序中同时使用了两者,并且不会在那里显示任何异常。
我遵循了 Kunjan Patel 的想法,但仍然没有奏效。所以我在 "ResourceDictionary.MergedDictionaries" 之前尝试了 "LocalizedStrings" 并且成功了!见下文。
<Application.Resources>
<ResourceDictionary x:Key="MyAppDict">
<local:LocalizedStrings xmlns:local="clr-namespace:Localizzazione" x:Key="LocalizedStrings"/>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/Resources/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
我想在 Windows Phone 8 应用程序中使用样式文件和 LocalizedStrings 文件作为资源,使用 App.xaml。
我知道要将样式文件添加为资源,我们可以使用:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/Resources/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
并将 LocalizedStrings 声明为我们可以使用的资源:
<Application.Resources>
<local:LocalizedStrings xmlns:local="clr-namespace:Localizzazione" x:Key="LocalizedStrings"/>
</Application.Resources>
两者在我的应用程序中都运行良好。但是我在尝试同时使用这两种资源时遇到了一些问题。
Visual Studio 阻止我在 ResourceDictionary 标签上方添加 LocalizedStrings 标签,要求我提供密钥,VS 也阻止我在 ResourceDictionnary 标签内添加 LocalizedString 标签。但是当我执行以下操作时 VS 很安静:
<Application.Resources>
<local:LocalizedStrings xmlns:local="clr-namespace:Localizzazione" x:Key="LocalizedStrings"/>
<ResourceDictionary x:Key="MyAppDict">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/Resources/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
但是当 运行 应用程序时,我得到一个带有附加信息的 XamlParseException
:无法分配给 属性 System.Windows.ResourceDictionnary.Source
。
那么您知道如何在 App.xaml 文件中合并这两种资源吗?
您可以使用以下代码添加两者。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="./Resources/ThemeResources.xaml"/>
</ResourceDictionary.MergedDictionaries>
<local:LocalizedStrings xmlns:local="clr-namespace:Localizzazione" x:Key="LocalizedStrings"/>
</ResourceDictionary>
</Application.Resources>
我在我的应用程序中同时使用了两者,并且不会在那里显示任何异常。
我遵循了 Kunjan Patel 的想法,但仍然没有奏效。所以我在 "ResourceDictionary.MergedDictionaries" 之前尝试了 "LocalizedStrings" 并且成功了!见下文。
<Application.Resources>
<ResourceDictionary x:Key="MyAppDict">
<local:LocalizedStrings xmlns:local="clr-namespace:Localizzazione" x:Key="LocalizedStrings"/>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Assets/Resources/Styles.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>