工具提示文化错误

时间:2016-05-12 09:37:39

标签: c# wpf number-formatting

我有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;
    }
}

适用于Text的{​​{1}}属性,但不适用于TextBox

要真实地看到我在屏幕截图中显示的内容:

  • go(Windows 7)ToolTip并将Control Panel/Region and Language/Formats设为Format
  • 转发English (United States)并将Additional settings/NumbersDecimal symbol更改为.
  • 创建新的wpf应用程序,复制xaml,添加语言覆盖,添加转换器并设置:

,

1 个答案:

答案 0 :(得分:4)

我也面临同样的问题。因此,您可以在TextBlock中添加ToolTip并为此ToolTip的TextBlock绑定相同的Text="{local:Bind Test}"来解决此问题。

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