gpt4 book ai didi

c# - 覆盖 TextBox 高度属性默认值

转载 作者:行者123 更新时间:2023-12-02 04:47:42 26 4
gpt4 key购买 nike

我正在创建一个派生自 TextBox 的自定义控件。我试图覆盖它的 Height 属性的默认值,但我不断收到类型不匹配的错误。

Metadata override and base metadata must be of the same type or derived type.

关于 MSDN它声明 Height 属性的类型为 System.Double

我尝试了以下方法:

1) 转换为 double

HeightProperty.OverrideMetadata(typeof(SuggestionTextBox), new UIPropertyMetadata(Convert.ToDouble(200)));

HeightProperty.OverrideMetadata(typeof(SuggestionTextBox), new UIPropertyMetadata((double)200));

2) 试图找出默认值

HeightProperty.DefaultMetadata.DefaultValue

返回 Double.NaN

编辑: 我在控件的静态构造函数中执行此操作,如 MSDN 上的示例所示

知道如何覆盖它的默认值吗?

最佳答案

问题不在于默认值的类型,而在于 PropertyMetaData 的类型,您必须使用 FrameworkPropertyMetadata 而不是 UIPropertyMetadata,因为这就是 HeightProperty 元数据类型。

HeightProperty.OverrideMetadata(typeof(SuggestionTextBox), new FrameworkPropertyMetadata(Convert.ToDouble(200)));

关于c# - 覆盖 TextBox 高度属性默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19478939/

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