【发布时间】:2016-09-08 01:20:42
【问题描述】:
我在 xaml 中有:
<TextBlock Text="{local:Bind Test}" ToolTip="{local:Bind Test}" />
这是截图(使用放大镜):
我的问题是这里发生了什么?为什么工具提示显示的值不同(小数点为 . 而应为 ,)?
更长的故事:
我正在尝试以与用户 Windows 数字格式首选项中相同的格式显示数字。
为此,我在显示窗口之前覆盖了语言(覆盖 App.OnStartup):
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
并使用以下自定义绑定(默认设置转换器文化)
public class Bind : Binding
{
public Bind(string path) : base(path)
{
ConverterCulture = CultureInfo.CurrentCulture;
}
}
它适用于TextBox 的Text 属性,但不适用于ToolTip。
要实际查看我在屏幕截图上显示的内容:
- 转到 (Windows 7)
Control Panel/Region and Language/Formats并将Format设置为English (United States) - 转到
Additional settings/Numbers并将Decimal symbol从.更改为, - 创建新的 wpf 应用程序,复制 xaml,添加语言覆盖,添加转换器并设置:
public partial class MainWindow : Window
{
public double Test { get; set; } = 1.234567;
public MainWindow()
{
InitializeComponent();
DataContext = this;
}
}
【问题讨论】:
标签: c# wpf number-formatting