2010-09-17 1 views
2

У меня есть TextBlock, связанный со строкой. Я хочу, чтобы строка отображалась в текущей культуре пользовательского интерфейса приложения. Я хочу сделать это в XAML. Текстовый блок прост, как показано ниже.Как установить текущий CultureUI с помощью привязки XAML

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

ответ

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}" /> 
+0

Спасибо Томас, но мне нужно сделать это для моей пользовательской библиотеки управления. Мне довелось увидеть, что CultureConverter привязан. Но я не знаю, как использовать это, чтобы установить текущую культуру. Это не свойство зависимостей. :( –

+0

См. Мой обновленный ответ –

Смежные вопросы