gpt4 book ai didi

c# - Run 组件上的 WPF StringFormat 使用错误的区域性

转载 作者:行者123 更新时间:2023-11-30 22:58:40 26 4
gpt4 key购买 nike

我使用 ShortDate 的 StringFormat (StringFormat=d) 将 DateTime 属性绑定(bind)到 Run 元素的 Text 属性,但它使用 en-US 区域性而不是系统区域性 (pt-BR)。我的代码如下所示:

<TextBlock>
Next date
<LineBreak />
<Run Text="{Binding Date, StringFormat=d}" FontWeight="Bold" />
</TextBlock>

我使用了 this link 中的代码覆盖我所有组件的区域性。

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)));

它确实适用于某些组件,但不适用于该日期格式。

最佳答案

还覆盖 Run 元素的元数据:

FrameworkElement.LanguageProperty.OverrideMetadata(typeof(Run), new FrameworkPropertyMetadata(
XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

或者明确设置Language属性:

<Run Text="{Binding Date, StringFormat=d}" Language="en-IN" FontWeight="Bold" />

Run 不是 FrameworkElement

关于c# - Run 组件上的 WPF StringFormat 使用错误的区域性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52894459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com