繁体   English   中英

如何在代码隐藏中将FrameworkElement.Width属性设置为qualifiedDouble的值?

[英]How do you set the FrameworkElement.Width property to the value of a qualifiedDouble, in the code-behind?

我正在尝试将我的一个控件的width属性设置为qualifiedDouble,
如MSDN上所述
(向下滚动到“XAML值”部分,查看MSDN关于使用qualifiedDouble的信息)

但是,我想知道如何在代码隐藏中实现这一点,而不是XAML。 我正在创建的UserControl没有附加XAML,以用于继承。 所以我必须手动执行所有XAML操作,使用C#中的所有操作。

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

多么巧合,我今天早些时候必须这样做。 合格的双打最终会根据您提供的单位进行因子转换,但作为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将字符串转换为目标类型。 例如, FontSizeConverterLengthConverter上调用内部静态方法。 (您也可以实例化FontSizeConverter 。)还有GridLength的转换器,如“4 *”, Width类似“自动”。 或者,就像我说的,你可以创建自己的类来转换而不用字符串。

对于代码隐藏, 本文建议直接使用该因子,因此我在上面提供了一个替代示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM