你如何设置FrameworkElement.Width属性设置为qualifiedDouble的值,

2019-09-23 18:02发布

我想我的控制之一的宽度属性设置为qualifiedDouble,
这里所描述的MSDN 。
(向下滚动到“XAML值”部分看到使用qualifiedDouble的MSDN的信息)

不过,我想知道如何在代码隐藏实现这一目标,而不是XAML。 我创建的用户控件不具有XAML重视他们,继承的目的。 所以我必须手动执行所有操作XAML,使用任何我可以在C#。

有谁知道qualifiedDouble是如何在代码隐藏实现?

Answer 1:

巧合的,我有这个今天早些时候做的。 合格的双打最终通过基于你给它的单元上的因素转换去,但由于部分LengthConverter

LengthConverter lc = new LengthConverter();
string qualifiedDouble = "10pt";

double converted = lc.ConvertFrom( qualifiedDouble );

备用:

double original = 10.0;
double converted = original * 1.333333333; // px-to-pt conversion

这将改变“10PT”到13.3333333,例如。 你也可以用转换因子文章用品,但我更喜欢使用上面,因为因素都内置到类。

编辑:在回答关于字符串评论...

字符串转换是非常合情合理的东西它的目的是为。 他们使用XAML,因为它是如此容易表达在XAML有些东西比在C#或VB。 在XAML中,所有的值都是字符串,所以你TypeConverter S也可以自动选择将字符串转换为目标类型。 FontSizeConverter例如,调用在内部静态方法LengthConverter 。 (您也可以实例FontSizeConverter代替。)也有转换器,用于GridLength就像“4 *”和Width就像“自动”。 或者,就像我说的,你可以创建自己的类,而不字符串转换。

本文建议,对于代码隐藏,直接使用的因素,所以我提供上述的替代实例。



文章来源: How do you set the FrameworkElement.Width property to the value of a qualifiedDouble, in the code-behind?