2

我正在创建一个从TextBox. 我试图覆盖它的Height属性的默认值,但我不断收到类型不匹配的错误。

元数据覆盖和基础元数据必须是相同类型或派生类型。

MSDN上,它声明Heightproperty 是 type 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上的示例所示

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

4

1 回答 1

5

问题不在于默认值的类型,而在于类型PropertyMetaData,而不是您UIPropertyMetadata必须使用元数据类型。FrameworkPropertyMetadataHeightProperty

HeightProperty.OverrideMetadata(typeof(SuggestionTextBox), new FrameworkPropertyMetadata(Convert.ToDouble(200)));
于 2013-10-20T15:19:06.003 回答