Sin*_*atr 6 c# wpf number-formatting
我在xaml:
<TextBlock Text="{local:Bind Test}" ToolTip="{local:Bind Test}" />
Run Code Online (Sandbox Code Playgroud)
这里是截图(使用放大镜):
我的问题是这里发生了什么?为什么显示工具提示值不同(小数点.,而,预期)?
更长的故事:
我试图以与用户Windows数字格式首选项相同的格式显示数字.
为此,我在显示窗口之前覆盖了语言(覆盖App.OnStartup):
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
Run Code Online (Sandbox Code Playgroud)
并使用以下自定义绑定(默认设置转换器文化)
public class Bind : Binding
{
public Bind(string path) : base(path)
{
ConverterCulture = CultureInfo.CurrentCulture;
}
}
Run Code Online (Sandbox Code Playgroud)
它适用于Text属性TextBox,但它不起作用ToolTip.
要真正看到我在截图上显示的内容:
Control Panel/Region and Language/Formats并设置Format为English (United States)Additional settings/Numbers,改变Decimal symbol从.到,public partial class MainWindow : Window
{
public double Test { get; set; } = 1.234567;
public MainWindow()
{
InitializeComponent();
DataContext = this;
}
}
Run Code Online (Sandbox Code Playgroud)
我也面临着同样的问题。因此,您可以通过在 ToolTip 的 TextBlock 中TextBlock添加ToolTip并绑定相同的内容来解决此问题。Text="{local:Bind Test}"
<TextBlock>
<TextBlock.ToolTip>
<TextBlock Text="{local:Bind Test}"/>
</TextBlock.ToolTip>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)