2010-01-01 6 views
9

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

ответ

15

Я обнаружил, что у вас нет , чтобы включить DLL времени разработки, чтобы добавить атрибут [Категория] в пользовательское свойство управления. Это один из способов, которым это можно сделать, но на самом деле вы можете использовать любой атрибут .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); } 
} 
3

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

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

Для документации см. WPF Designer Extensibility в MSDN.