Поделиться через


CategoryEditor - класс

Обновлен: Ноябрь 2007

Абстрактный класс для создания пользовательских редакторов категорий.

Пространство имен:  Microsoft.Windows.Design.PropertyEditing
Сборка:  Microsoft.Windows.Design (в Microsoft.Windows.Design.dll)

Синтаксис

'Декларация
Public MustInherit Class CategoryEditor
'Применение
Dim instance As CategoryEditor
public abstract class CategoryEditor
public ref class CategoryEditor abstract
public abstract class CategoryEditor

Заметки

Чтобы создать пользовательский объект CategoryEditor для набора свойств хост-приложения обозревателя свойств, выполните наследование от этого класса. Этот класс представляет настраиваемый пользовательский интерфейс для редактирования связанного набора свойств, например свойств категории Text.

Свойство TargetCategory определяет категорию связанных свойств, для которой создается редактор. Например, в окне «Свойства» в категории Text отображается ряд текстовых свойств. Если редактор предназначен для изменения этих свойств, в свойстве TargetCategory возвращается «Text».

В свойстве EditorTemplate возвращается шаблон XAML для графического интерфейса пользователя этого редактора. Обычно это предоставляется в объекте ResourceDictionary в другом месте проекта.

Обратите внимание, что перед использованием в конструкторе объекта CategoryEditor следует зарегистрировать его. Дополнительные сведения см. в разделе IRegisterMetadata.

Примеры

В следующем примере кода показано применение класса CategoryEditor. Дополнительные сведения см. в разделе Пошаговое руководство. Создание редактора категорий.

Public Class TextCategoryEditor
    Inherits CategoryEditor

    ' The EditorResources class in this example inherits ResourceDirectory and
    ' contains the template for the category editor. This would be defined in 
    ' an associated XAML file named EditorResources.xaml
    Private res As New EditorResources()
    Public Overrides Function ConsumesProperty(ByVal prop As PropertyEntry) As Boolean
        Return True
    End Function

    Public Overrides ReadOnly Property EditorTemplate() As System.Windows.DataTemplate
        Get
            Return CType(res("TextCategoryEditorTemplate"), DataTemplate)
        End Get
    End Property

    Public Overrides Function GetImage(ByVal desiredSize As System.Windows.Size) As Object
        Return Nothing
    End Function

    Public Overrides ReadOnly Property TargetCategory() As String
        Get
            Return "Text"
        End Get
    End Property
End Class
public class TextCategoryEditor : CategoryEditor
{

    // The EditorResources class in this example inherits ResourceDictionary 
    // and contains template for the category editor. This would be 
    // defined in an associated XAML file named EditorResources.xaml
    private EditorResources res = new EditorResources();
    public TextCategoryEditor()
    {
    }

    public override bool ConsumesProperty(PropertyEntry property)
    {
        return true;
    }

    public override DataTemplate EditorTemplate
    {
        get
        {
            return res["TextCategoryEditorTemplate"] as DataTemplate;
        }
    }

    public override object GetImage(Size desiredSize)
    {
        return null;
    }

    public override string TargetCategory
    {
        get { return "Text"; }
    }
}

Иерархия наследования

System.Object
  Microsoft.Windows.Design.PropertyEditing.CategoryEditor

Потокобезопасность

Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.

См. также

Ссылки

CategoryEditor - члены

Microsoft.Windows.Design.PropertyEditing - пространство имен

Другие ресурсы

Архитектура редактирования свойства

Расширяемость среды конструктора WPF