加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

xaml – 如何在Windows Phone 8中将ResourceDictionary用作Stati

发布时间:2020-12-14 03:58:48 所属栏目:Windows 来源:网络整理
导读:我有一个 Windows Phone 7应用程序,我正在尝试创建它的Windows Phone 8版本. 在应用程序中,我在XAML文件中定义了一个ResourceDictionary: ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.
我有一个 Windows Phone 7应用程序,我正在尝试创建它的Windows Phone 8版本.

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

<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>

此AppDaml在App.xaml中引用为:

<!--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”/>当我有我的应用程序时,它没有编译,因为它抱怨

Each dictionary entry must have an associated key.

所以我通过代码更改为:

<!--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:

Cannot find a Resource with the Name/Key AppName

这一切都是因为LocalizedStrings资源而发生的.有人可以帮助完成这项工作吗?

顺便说一句,我对Value Converters也有同样的问题;如果他们以不同的方式完成,我很感激,如果有人可以提供帮助.

提前致谢.

解决方法

将本地化的字符串条目移动到顶级应用程序资源字典中.

<!--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>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读