2

文字列にバインドされたTextBlockがあります。アプリケーションの現在のUIカルチャに文字列を表示したい。XAMLでこれを実行したいと思います。テキストブロックは以下のように単純です。

<TextBlock Text="{Binding Path=Text}"/>

4

1 に答える 1

2

プロパティを設定する必要がありFrameworkElement.Languageます。アプリケーション全体でこれを行う最も簡単な方法は、Appクラスの静的コンストラクターでプロパティ メタデータをオーバーライドすることです。

public partial class App : Application
{
    static App()
    {
        FrameworkElement.LanguageProperty.OverrideMetadata(
            typeof(FrameworkElement),
            new FrameworkPropertyMetadata(
                XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
    }
}

特定のコントロールのカルチャのみを設定する場合は、そのLanguageプロパティをデータ コンテキストのプロパティにバインドできます。

<TextBlock Text="{Binding Something}" Language="{Binding TheLanguage}" />
于 2010-09-17T12:06:02.340 に答える