FeatureProvider-Klasse
Aktualisiert: November 2007
Fügt einem Feature einen klassenspezifischen Beitrag hinzu.
Namespace: Microsoft.Windows.Design.Features
Assembly: Microsoft.Windows.Design.Extensibility (in Microsoft.Windows.Design.Extensibility.dll)
Syntax
'Declaration
Public MustInherit Class FeatureProvider
'Usage
Dim instance As FeatureProvider
public abstract class FeatureProvider
public ref class FeatureProvider abstract
public abstract class FeatureProvider
Hinweise
Leiten Sie von der abstrakten FeatureProvider-Klasse ab, um die Entwurfszeit für die benutzerdefinierten Steuerelemente zu erweitern.
Featureanbieter werden von Featureconnectors verwaltet und durch das FeatureAttribute-Metadatenattribut Objekten zugeordnet. Der Featureconnector ermittelt aus diesen Metadaten FeatureProvider-Typen. Der FeatureManager identifiziert den erforderlichen Featureconnector für jeden ermittelten Featureanbieter.
Zu den allgemeinen Implementierungen von Featureanbietern gehören Auswahladorner, Kontextmenüs und Eigenschaften-Editoren.
Zum Anfügen eines Featureanbieters an die primäre Auswahl auf der Entwurfsoberfläche leiten Sie von einem der Featureanbieter ab, wobei die PrimarySelectionPolicy angewendet wird, beispielsweise PrimarySelectionAdornerProvider oder
PrimarySelectionContextMenuProvider.
Beispiele
In dem folgenden Codebeispiel wird veranschaulicht, wie von der FeatureProvider-Klasse abgeleitet wird, um einen benutzerdefinierten Featureanbieter mit der Bezeichnung DiagnosticsMenuProvider mit einer benutzerdefinierten Dienstbindung mit der Bezeichnung IDiagnosticsService zu implementieren. Die vollständige Codeliste finden Sie unter Gewusst wie: Erstellen einer benutzerdefinierten Featureverbindung.
' 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();
}
}
Vererbungshierarchie
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.Model.InstanceFactory
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Siehe auch
Referenz
Microsoft.Windows.Design.Features-Namespace
FeatureConnector<TFeatureProviderType>
PrimarySelectionAdornerProvider
PrimarySelectionContextMenuProvider
Weitere Ressourcen
Gewusst wie: Erstellen einer benutzerdefinierten Featureverbindung