Sdílet prostřednictvím


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

FeatureProvider-Member

Microsoft.Windows.Design.Features-Namespace

FeatureConnector<TFeatureProviderType>

FeatureManager

PrimarySelectionAdornerProvider

PrimarySelectionContextMenuProvider

Weitere Ressourcen

Gewusst wie: Erstellen einer benutzerdefinierten Featureverbindung

Featureanbieter und Featureverbindungen

WPF-Designer-Erweiterbarkeit