我试图将我的一个控件的宽度属性设置为qualifiedDouble,
如 MSDN 上所述 http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.width.aspx.
(向下滚动到“XAML 值”部分,查看 MSDN 有关使用qualifiedDouble 的信息)
但是,我想知道如何在代码隐藏中实现这一点,而不是 XAML。出于继承目的,我创建的 UserControls 没有附加 XAML。因此,我必须使用 C# 中的任何功能手动执行所有 XAML 操作。
有谁知道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。您还可以使用文章提供的转换因子,但我更喜欢使用上面的转换因子,因为这些因子内置在类中。
Edited:回应有关字符串的评论...
字符串转换对于它的用途来说非常有意义。他们使用 XAML 是因为用 XAML 表达某些内容比用 C# 或 VB 容易得多。在 XAML 中,所有值都是字符串,因此您有TypeConverter
自动选择将字符串转换为目标类型。FontSizeConverter
例如,调用内部静态方法LengthConverter
。 (你也可以实例化FontSizeConverter
相反。)还有转换器GridLength
就像“4*”和Width
就像“自动”。或者,就像我说的,您可以创建自己的类来进行不带字符串的转换。
本文 http://blogs.windowsclient.net/rob_relyea/archive/2008/04/10/strings-to-things-or-how-xaml-interprets-attribute-values.aspx对于代码隐藏,建议直接使用该因子,因此我在上面提供了一个替代示例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)