나는 loraderon 의 대답이 대부분의 경우 훌륭하게 작동 한다고 덧붙이고 싶었습니다 . App.xaml.cs에 다음 코드 줄을 넣으면 TextBlock의 날짜가 올바른 문화권으로 형식이 지정됩니다.
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(System.Windows.Markup.XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
나는 '대부분의 경우'라고 말합니다.
<TextBlock Text="{Binding Path=Date, StringFormat={}{0:d MMMM yyyy}}" />
--> "16 mei 2013" (this is in Dutch)
... 그러나 TextBlock에서 Run을 사용할 때 DateTime은 기본 문화권으로 형식이 지정됩니다.
<TextBlock>
<Run Text="Datum: " />
<Run Text="{Binding Path=Date, StringFormat={}{0:d MMMM yyyy}, Mode=OneWay}" />
</TextBlock>
--> "Datum: 16 may 2013" (this is in English, notice the
name of the month "may" vs. "mei")
이 작업을 수행하려면 Gusdor 의 대답이 필요 했습니다 . 즉, ConverterCulture = {x : Static gl : CultureInfo.CurrentCulture}를 바인딩에 추가했습니다.
<TextBlock>
<Run Text="Datum: " />
<Run Text="{Binding Path=Date, StringFormat={}{0:d MMMM yyyy}, ConverterCulture={x:Static gl:CultureInfo.CurrentCulture}, Mode=OneWay}" />
</TextBlock>
--> "Datum: 16 mei 2013" (=Dutch)
이 추가 답변이 누군가에게 유용하기를 바랍니다.