4

WindowsPhone8バージョンを作成しようとしているWindowsPhone7アプリがあります。

アプリでは、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>

このResourceDictionaryは、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}"/>

上記はWindowsPhone7で完全に機能しますが、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リソースが原因で発生します。誰かがその仕事をするのを手伝ってもらえますか?

ちなみに、私はバリューコンバーターについても同じ問題を抱えています。それらが異なって行われるならば、誰かがそれで同様に助けることができるならば、私は感謝します。

前もって感謝します。

4

2 に答える 2

7

ローカライズされた文字列エントリを最上位のアプリケーションリソースディクショナリに移動します。

<!--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>
于 2012-12-29T08:46:08.517 に答える
0
<Application.Resources>
    <ResourceDictionary Source="Assets/Constants.xaml" />
</Application.Resources>
于 2012-12-28T15:50:50.933 に答える