C# 如何指定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> 问题在于,

当我们在XAML中使用静态双精度值时,我们如何指定提供它们的格式

例如:

<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"