为了账号安全,请及时绑定邮箱和手机立即绑定

WPF中的StringFormat本地化问题

WPF中的StringFormat本地化问题

RISEBY 2019-10-15 15:52:52
在WPF 3.5SP1中,我在DataBindings中使用了最后一个功能StringFormat:     <TextBlock Text="{Binding Path=Model.SelectedNoteBook.OriginalDate, StringFormat='f'}"                FontSize="20" TextTrimming="CharacterEllipsis" />我面临的问题是,日期始终以英语格式设置...尽管我的系统是法语格式?如何强制日期跟随系统日期?
查看完整描述

3 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

// Ensure the current culture passed into bindings is the OS culture.

// By default, WPF uses en-US as the culture, regardless of the system settings.

FrameworkElement.LanguageProperty.OverrideMetadata(

      typeof(FrameworkElement),

      new FrameworkPropertyMetadata(

          XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

从在WPF中创建国际化向导


查看完整回答
反对 回复 2019-10-15
?
PIPIONE

TA贡献1829条经验 获得超9个赞

定义以下xml名称空间:


xmlns:gl="clr-namespace:System.Globalization;assembly=mscorlib"

现在看看这个奇妙的修复:


<TextBlock Text="{Binding Path=Model.SelectedNoteBook.OriginalDate, StringFormat='f', ConverterCulture={x:Static gl:CultureInfo.CurrentCulture}" FontSize="20"TextTrimming="CharacterEllipsis" />

我很清楚这不是一个全局修补程序,您将在每个Bindings上都需要它,但是可以肯定的是,这只是很好的XAML?据我所知,下次绑定更新时,它将使用正确的CultureInfo.CurrentCulture或您提供的内容。


该解决方案将立即使用正确的值更新您的Bindings,但是对于如此少见又无害的东西,似乎有很多代码。


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 753 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信