【问题标题】:Binding the Height of a Control to a unit specific measurement将控件的高度绑定到特定于单位的测量值
【发布时间】:2012-01-05 16:10:10
【问题描述】:

我知道在 WPF 中,您可以用不同的单位指定控件的高度。

例如:

<Setter Property="Height" Value="0.35cm"></Setter>

我想将控件的高度绑定到我的 ViewModel 中的一个属性。使用绑定时如何指定高度以厘米为单位?我试图将 ViewModel 中的 Height 属性设置为字符串,并在高度测量后面附加“cm”:

ViewModel 在 XAML 中创建如下:

<local:HeadingViewModel Height="0.35cm"></local:HeadingViewModel>

控件的高度通过样式中的绑定设置:

<Setter Property="Height" Value="{Binding Height, RelativeSource={RelativeSource Mode=TemplatedParent}}"></Setter>

这会设置高度,但不是以厘米为单位。它似乎是在 WPF 的默认单位中设置的。当我将高度从“0.35cm”更改为“0.35in”时,没有任何反应。它似乎停留在 WPF 的默认单位中。

如何通过绑定在与默认单位不同的测量单位中设置控件的高度属性?

【问题讨论】:

    标签: wpf binding height units-of-measurement


    【解决方案1】:

    实际上并没有使用 WPF 中的不同单元进行绑定的概念——只有一个 TypeConverter - LengthConverter——它将 XAML 提供的字符串转换为 double。根据您输入的单位,它会将结果乘以某个因子。

    因此,如果要绑定到双精度数,则必须确保将代码中的双精度数转换为 WPF 的 1/94 英寸单位。或者您可以创建一个IValueConverter 来为您做这件事。

    如果你想绑定到一个字符串,你可以写一个IValueConverter并从内部调用LengthConverter

    【讨论】:

      猜你喜欢
      • 2013-08-19
      • 2012-06-15
      • 2012-10-16
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多