工具提示文化是错误的
我在xaml:
这里是截图(使用放大镜):
我的问题是这里发生了什么? 为什么工具提示显示不同的值(小数点是.
虽然,
是预期的)?
更长的故事:
我试图以与用户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
。
要真正看到我在屏幕截图中显示的内容:
- go(Windows 7)
Control Panel/Region and Language/Formats
并将Control Panel/Region and Language/Formats
设置为English (United States)
- go
Additional settings/Numbers
并更改Decimal symbol
.
到,
- 创建新的wpf应用程序,复制xaml,添加语言覆盖,添加转换器和设置:
public partial class MainWindow : Window { public double Test { get; set; } = 1.234567; public MainWindow() { InitializeComponent(); DataContext = this; } }
我也面临同样的问题。 因此,您可以通过在ToolTip
添加TextBlock
并为此ToolTip的TextBlock Text="{local:Bind Test}"
相同的Text="{local:Bind Test}"
来解决此问题。