У меня есть свойство DateTime, привязанное к свойству Text элемента Run с использованием StringFormat для ShortDate (StringFormat=d), но оно использует культуру en-US вместо системной культуры (pt-BR). Мой код выглядит так:
<TextBlock>
Next date
<LineBreak />
<Run Text="{Binding Date, StringFormat=d}" FontWeight="Bold" />
</TextBlock>
Я использовал код из этой ссылки, чтобы переопределить культуру для всех моих компонентов.
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-IN");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-IN");
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
Это работает для некоторых компонентов, но не для этого формата даты.