Omr*_*ian 2 c# wpf textbox custom-controls
我正在创建一个源自的自定义控件TextBox。我试图覆盖它的Height属性的默认值,但是我不断收到类型不匹配的错误。
元数据覆盖和基本元数据必须是相同类型或派生类型。
在MSDN上,它声明Height属性为类型System.Double。
我尝试了以下方法:
1)转换为两倍
HeightProperty.OverrideMetadata(typeof(SuggestionTextBox), new UIPropertyMetadata(Convert.ToDouble(200)));
Run Code Online (Sandbox Code Playgroud)
和
HeightProperty.OverrideMetadata(typeof(SuggestionTextBox), new UIPropertyMetadata((double)200));
Run Code Online (Sandbox Code Playgroud)
2)试图找出默认值
HeightProperty.DefaultMetadata.DefaultValue
Run Code Online (Sandbox Code Playgroud)
编辑:我在控件的静态构造函数中执行此操作,如MSDN上的示例所示
知道我如何可以覆盖它的默认值吗?
问题不在于默认类型的值,而是与类型的PropertyMetaData,而不是UIPropertyMetadata您必须使用,FrameworkPropertyMetadata因为这是HeightProperty元数据类型。
HeightProperty.OverrideMetadata(typeof(SuggestionTextBox), new FrameworkPropertyMetadata(Convert.ToDouble(200)));
Run Code Online (Sandbox Code Playgroud)