工具提示文化是错误的

Tooltip culture is wrong

我有 xaml:

<TextBlock Text="{local:Bind Test}" ToolTip="{local:Bind Test}" />

这是屏幕截图(使用放大镜):

我的问题是这里发生了什么?为什么工具提示显示不同的值(小数点是 ., 是预期的)?


长话短说:

我正在尝试以与用户 Windows 数字格式首选项中相同的格式显示数字。

为此,我在显示 window 之前覆盖了语言(覆盖 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;
    }
}

它适用于 TextBoxText 属性,但不适用于 ToolTip

要实际查看我在屏幕截图上显示的内容:

public partial class MainWindow : Window
{
    public double Test { get; set; } = 1.234567;

    public MainWindow()
    {
        InitializeComponent();
        DataContext = this;
    }
}

我也遇到了同样的问题。因此,您可以通过在 ToolTip 中添加 TextBlock 并为此工具提示的 TextBlock 绑定相同的 Text="{local:Bind Test}" 来解决此问题。

<TextBlock>
    <TextBlock.ToolTip>
        <TextBlock Text="{local:Bind Test}"/>
    </TextBlock.ToolTip>
</TextBlock>