C# 如何指定XAML值(例如转换器参数)区域性
当我们在XAML中使用静态双精度值时,我们如何指定提供它们的格式 例如:C# 如何指定XAML值(例如转换器参数)区域性,c#,wpf,xaml,cultureinfo,C#,Wpf,Xaml,Cultureinfo,当我们在XAML中使用静态双精度值时,我们如何指定提供它们的格式 例如: <Rectangle> <Rectangle.Opacity> <Binding Path="IsDimmed" Converter="{StaticResource boolToDoubleConverter}" ConverterParameter="0.8"/> </Rectangle.Opacity> </Rectangle> 问题在于,
<Rectangle>
<Rectangle.Opacity>
<Binding Path="IsDimmed" Converter="{StaticResource boolToDoubleConverter}" ConverterParameter="0.8"/>
</Rectangle.Opacity>
</Rectangle>
问题在于,在机器上,小数由,
分隔,转换方法失败或分别返回错误的值
我不想在Parse()
方法中设置InvariantCulture,因为转换器可能在某些地方被用来解析用户输入,这就是为什么仍然应该应用culture
参数的原因
如果使用0.8
将该值指定为资源,则转换器参数将变为双精度类型,但在解析之前将转换为字符串
因此,我想以某种方式指定,该值以en GB格式表示,如ConverterParameter=“0.8”ConverterParameterCulture=“en GB”/>
无需创建膨胀的多值转换器,这是否可能实现?为此,您可以使用绑定的属性:
<Binding Path="IsDimmed" Converter="{StaticResource boolToDoubleConverter}"
ConverterParameter="0.8" ConverterCulture="en-GB"/>
有时我使用:
<TextBlock Grid.Column="3" Margin="3" Text="{Binding [Value], Mode=OneTime, StringFormat={}{0:N2}, ConverterCulture={x:Static glob:CultureInfo.CurrentCulture}}" HorizontalAlignment="Right" />
老兄,我的猜测很接近。。。8-)
<TextBlock Grid.Column="3" Margin="3" Text="{Binding [Value], Mode=OneTime, StringFormat={}{0:N2}, ConverterCulture={x:Static glob:CultureInfo.CurrentCulture}}" HorizontalAlignment="Right" />
xmlns:glob="clr-namespace:System.Globalization;assembly=mscorlib"