Если я создаю класс, который расширяет UserControl
и хочет установить значение по умолчанию для 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
отображается как всплывающая подсказка в окне свойств Visual Studio, когда пользователь перемещает указатель мыши над соответствующим именем свойства. У меня вопрос: возможно ли установить значение DescriptionAttribute
для этого DependencyProperty
аналогично переопределению метаданных? Или я должен буду сохранить свойство getter / setter CLR и объявление атрибута?
Большое спасибо заранее.