重写文本框高度属性默认值
本文关键字:属性 默认值 高度 文本 重写 | 更新日期: 2023-09-27 18:36:19
我正在创建一个从TextBox
派生的自定义控件。我正在尝试覆盖其Height
属性的默认值,但不断收到类型不匹配的错误。
元数据重写和基元数据必须属于同一类型或派生类型。
在 MSDN 上,它指出Height
属性的类型为 System.Double
。
我尝试了以下方法:
1)转换为双倍
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
的类型,而不是UIPropertyMetadata
,您将不得不使用FrameworkPropertyMetadata
因为这就是HeightProperty
元数据类型。
HeightProperty.OverrideMetadata(typeof(SuggestionTextBox), new FrameworkPropertyMetadata(Convert.ToDouble(200)));