如何在Windows Phone 8中使用ResourceDictionary作为静音



我有一个Windows Phone 7应用程序,我正在尝试创建Windows Phone 8版本。

在应用程序中,我在XAML文件中定义了一个resourcectionary,为:

<ResourceDictionary
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <sys:String x:Key="AppName">My App Name</sys:String>
    <!-- etc. -->
</ResourceDictionary>

app.xaml中引用了此资源consectionary as:

<!--Application Resources-->
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Assets/Constants.xaml"/>
            <!-- etc. -->
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

,然后是这样做的简单部分:

<TextBlock x:Name="ApplicationTitle" Text="{StaticResource AppName}"/>

上面的Windows Phone 7可以很好地效果,但是,在Windows Phone 8中,还有一个额外的Application.Resources项目是<myNamespace:LocalizedStrings x:Key="LocalizedStrings"/>,当我将应用程序不编译时,因为它抱怨

每个字典条目必须具有关联的密钥。

所以我通过代码更改为:

<!--Application Resources-->
<Application.Resources>
    <myNamespace:LocalizedStrings x:Key="LocalizedStrings"/>
    <ResourceDictionary x:Key="MainDictionary">
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Assets/Constants.xaml"/>
            <!-- etc. -->
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

现在我还有另一个问题。我的应用程序编译,但是当它运行时会抛出XamlParseException

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

这一切都是由于LocalizedStrings资源而发生的。有人可以帮助做这项工作吗?

顺便说一句,我对价值转换器也有相同的问题;如果他们做的不同,我很感激是否也能为此提供帮助。

预先感谢。

将本地化字符串条目移至顶级应用程序资源词典中。

<!--Application Resources-->
<Application.Resources>
        <ResourceDictionary x:Key="MainDictionary">
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Assets/Constants.xaml"/>
                <!-- etc. -->
            </ResourceDictionary.MergedDictionaries>
            <myNamespace:LocalizedStrings x:Key="LocalizedStrings"/>
        </ResourceDictionary>
</Application.Resources>
<Application.Resources>
    <ResourceDictionary Source="Assets/Constants.xaml" />
</Application.Resources>

相关内容

  • 没有找到相关文章

最新更新