FeatureProvider - класс
Добавляет в компонент дополнение, определяемое классом.
Иерархия наследования
System.Object
Microsoft.Windows.Design.Features.FeatureProvider
Microsoft.Windows.Design.Interaction.Adapter
Microsoft.Windows.Design.Interaction.AdornerProvider
Microsoft.Windows.Design.Interaction.ContextMenuProvider
Microsoft.Windows.Design.Interaction.TaskProvider
Microsoft.Windows.Design.Model.DefaultInitializer
Microsoft.Windows.Design.Model.DesignModeValueProvider
Пространство имен: Microsoft.Windows.Design.Features
Сборка: Microsoft.Windows.Design.Extensibility (в Microsoft.Windows.Design.Extensibility.dll)
Синтаксис
'Декларация
Public MustInherit Class FeatureProvider
public abstract class FeatureProvider
public ref class FeatureProvider abstract
[<AbstractClass>]
type FeatureProvider = class end
public abstract class FeatureProvider
Тип FeatureProvider предоставляет следующие члены.
Конструкторы
Имя | Описание | |
---|---|---|
FeatureProvider | Инициализирует новый экземпляр класса FeatureProvider. |
В начало страницы
Методы
Имя | Описание | |
---|---|---|
Equals | Определяет, равен ли заданный объект Object текущему объекту Object. (Унаследовано от Object.) | |
Finalize | Позволяет объекту попытаться освободить ресурсы и выполнить другие операции очистки, перед тем как объект будет утилизирован в процессе сборки мусора. (Унаследовано от Object.) | |
GetHashCode | Играет роль хэш-функции для определенного типа. (Унаследовано от Object.) | |
GetType | Возвращает объект Type для текущего экземпляра. (Унаследовано от Object.) | |
MemberwiseClone | Создает неполную копию текущего объекта Object. (Унаследовано от Object.) | |
ToString | Возвращение строки, представляющей текущий объект. (Унаследовано от Object.) |
В начало страницы
Заметки
Расширение возможностей среды разработки применительно к пользовательским элементам управления осуществляется путем наследования от абстрактного класса FeatureProvider.
Поставщики функций управляются функциональными соединителями и связываются с объектами с помощью атрибута метаданных FeatureAttribute. Соединительный элемент обнаруживает типы FeatureProvider в этих метаданных. Класс FeatureManager определяет необходимые соединительные элементы для каждого обнаруженного поставщика функций.
В число распространенных реализаций поставщиков функций входят декоративные элементы выделения, контекстные меню и редакторы свойств.
Для прикрепления поставщика функций к основной выбранной области в рабочей области конструирования используется наследование от одного из поставщиков функций с применением политики PrimarySelectionPolicy, например, PrimarySelectionAdornerProvider или
PrimarySelectionContextMenuProvider.
Примеры
В следующем примере показано, как наследовать от класса FeatureProvider для реализации поставщика пользовательской функции DiagnosticsMenuProvider с пользовательской службой IDiagnosticsService. Полный исходный код см. в разделе Практическое руководство. Создание пользовательского соединительного элемент.
' The DiagnosticsMenuProvider class adds a context menu item
' that displays a dialog box listing the currently running and
' pending feature connectors.
<FeatureConnector(GetType(DiagnosticsFeatureConnector))> _
Public Class DiagnosticsMenuProvider
Inherits PrimarySelectionContextMenuProvider
Public Sub New()
Dim action As New MenuAction("Feature Diagnostics...")
AddHandler action.Execute, AddressOf action_Execute
Items.Add(action)
End Sub
Sub action_Execute(ByVal sender As Object, ByVal e As MenuActionEventArgs)
Dim service As IDiagnosticsService = e.Context.Services.GetRequiredService(Of IDiagnosticsService)()
service.ShowWindow()
End Sub
End Class
// The DiagnosticsMenuProvider class adds a context menu item
// that displays a dialog box listing the currently running and
// pending feature connectors.
[FeatureConnector(typeof(DiagnosticsFeatureConnector))]
public class DiagnosticsMenuProvider : PrimarySelectionContextMenuProvider
{
public DiagnosticsMenuProvider()
{
MenuAction action = new MenuAction("Feature Diagnostics...");
action.Execute += new EventHandler<MenuActionEventArgs>(action_Execute);
Items.Add(action);
}
void action_Execute(object sender, MenuActionEventArgs e)
{
IDiagnosticsService service =
e.Context.Services.GetRequiredService<IDiagnosticsService>();
service.ShowWindow();
}
}
Потокобезопасность
Любые открытые члены этого типа, объявленные как static (Shared в Visual Basic), являются потокобезопасными. Потокобезопасность членов экземпляров не гарантируется.
См. также
Ссылки
Microsoft.Windows.Design.Features - пространство имен
FeatureConnector<TFeatureProviderType>
PrimarySelectionAdornerProvider
PrimarySelectionContextMenuProvider
Другие ресурсы
Практическое руководство. Создание пользовательского соединительного элемент