最近我发现WPF在XAML中支持不同的度量单位。除了默认的设备独立像素(DIPs)之外,还支持像素、英寸和厘米(据我所知)。这使得设计师可以编写如下的XAML代码:
<Canvas>
<Line X1="0cm" X2="3cm" Y1="1cm" Y2="3cm" Stroke="Black"/>
</Canvas>
然而,您无法绑定这些值。假设我们有一个包含 Dimension 属性的 ViewModel,它是一个字符串,例如“7cm”。以下代码将无法正常工作:
<Button Width="{Binding Dimension}">Test</Button>
会抛出 FormatException 异常。同样的,当在代码后台创建一个 FrameworkElement
时,像这样:
Canvas1.Children.Add(new Button() { Width = "3cm", Content = "Test"});
由于在构造函数/您尝试创建控件的任何位置引发了异常,因此编译失败。
我想知道:
- 是否可以在代码后台中使用自然单位(例如我的情况是公制 - 厘米)?
- 如何做到?
- WPF/XAML支持的单位是否有完整列表?
编辑:
以下是下面评论中提供的解决此问题的链接:
http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.width.aspx