我知道在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的默认单位。
如何在与默认单位不同的测量单位中通过绑定设置控件的高度属性?
答案 0 :(得分:1)
在WPF中实际上并没有使用不同单位进行绑定的概念 - 只有TypeConverter
- LengthConverter
- 将XAML提供的字符串转换为{{1} }。根据您输入的单位,它会将结果乘以某个因子。
因此,如果要绑定到double,则必须确保将代码中的双精度转换为WPF的1/94英寸单位。或者你可以让double
为你做这件事。
如果要绑定到字符串,可以写一个IValueConverter
并从内部调用IValueConverter
。