Установить категорию свойства для пользовательского элемента управления WPF?

В WinForms я мог бы добавить атрибут [Category] к пользовательскому свойству элемента управления, чтобы указать, какая категория свойств должна содержать это свойство. Как мне это сделать в WPF? Спасибо


person David Veeneman    schedule 01.01.2010    source источник


Ответы (2)


Я обнаружил, что вам не нужно необходимо включать библиотеку DLL времени разработки, чтобы добавить атрибут [Category] к пользовательскому свойству элемента управления. Это один из способов, которым это можно сделать, но на самом деле вы можете использовать любой атрибут .NET точно так же, как вы это делали в WinForms. Например:

/// <summary>
/// The image displayed by the button.
/// </summary>
/// <remarks>The image is specified in XAML as an absolute or relative path.</remarks>
[Description("The image displayed by the button."), Category("Common Properties")] 
public ImageSource Image
{
    get { return (ImageSource)GetValue(ImageProperty); }
    set { SetValue(ImageProperty, value); }
}
person David Veeneman    schedule 03.01.2010

Вам необходимо предоставить «сборку метаданных», также известную как «DLL времени разработки». Это сборка с тем же именем, что и ваша основная сборка, с добавленным к ней .Design (например, MyCompany.MyControls.Design.dll) и содержащая класс, реализующий IRegisterMetadata. Реализация IRegisterMetadata создает таблицу атрибутов для различных компонентов в вашей основной сборке и добавляет ее в хранилище метаданных.

Полную информацию и примеры см. в сообщениях блога Джима Накашимы из команды Cider здесь и здесь.

Документацию см. в разделе Расширяемость конструктора WPF в MSDN.

person itowlson    schedule 01.01.2010