将控件的高度绑定到特定单位的测量

时间:2011-11-24 13:34:39

标签: wpf binding height units-of-measurement

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

例如:

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

我想将Control的高度绑定到ViewModel中的属性。使用绑定时如何指定高度以厘米为单位?我试图将ViewModel中的Height属性设置为String并在高度测量后面附加“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的默认单位。

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

1 个答案:

答案 0 :(得分:1)

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

因此,如果要绑定到double,则必须确保将代码中的双精度转换为WPF的1/94英寸单位。或者你可以让double为你做这件事。

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