gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 15:12:25 24 4
gpt4 key购买 nike

我正在尝试将我的一个控件的宽度属性设置为 qualifiedDouble,
as described here on MSDN .
(向下滚动到“XAML 值”部分以查看 MSDN 关于使用 qualifiedDouble 的信息)

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

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

最佳答案

真是巧合,我今天早些时候不得不这样做。合格的 double 最终会根据您提供的单位进行因子转换,但作为 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 以将字符串转换为目标类型。 FontSizeConverter 例如,在 LengthConverter 上调用一个内部静态方法。 (您也可以实例化 FontSizeConverter。)还有 GridLength 的转换器,例如“4*”和 Width 的转换器,例如“Auto”。或者,就像我说的,您可以创建自己的类以在没有字符串的情况下进行转换。

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

关于c# - 如何在代码隐藏中将 FrameworkElement.Width 属性设置为 qualifiedDouble 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1279102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com