拡張するクラスを作成し、たとえばで宣言されているUserControl
aのデフォルト値を設定したい場合は、次のような静的コンストラクターを追加できます。DependencyProperty
UserControl
FontSize
static MyUserControl()
{
UserControl.FontSizeProperty.OverrideMetadata(typeof(MyUserControl),
new FrameworkPropertyMetadata(28.0));
}
メソッドについて学ぶ前はOverrideMetadata
、プロパティをオーバーライドしてDescriptionAttribute
、次のように設定していました。
public new static readonly DependencyProperty FontSizeProperty =
DependencyProperty.Register("FontSize", typeof(double), typeof(MyUserControl),
new PropertyMetadata(28.0));
[Description("My custom description."), Category("Text")]
public new double FontSize
{
get { return (double)GetValue(FontSizeProperty); }
set { SetValue(FontSizeProperty, value); }
}
ユーザーがマウスポインターを関連するプロパティ名の上に移動すると、DescriptionAttribute
値はVisualStudioのプロパティウィンドウにポップアップツールチップとして表示されます。私の質問は、メタデータをオーバーライドするのと同様の方法DescriptionAttribute
でこれの値を設定することは可能ですか?DependencyProperty
または、CLRゲッター/セッターのプロパティと属性の宣言を保持する必要がありますか?
よろしくお願いします。