Condividi tramite


Classe FeatureProvider

Aggiunge un contributo specifico della classe a una funzionalità.

Gerarchia di ereditarietà

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

Spazio dei nomi:  Microsoft.Windows.Design.Features
Assembly:  Microsoft.Windows.Design.Extensibility (in Microsoft.Windows.Design.Extensibility.dll)

Sintassi

'Dichiarazione
Public MustInherit Class FeatureProvider
public abstract class FeatureProvider
public ref class FeatureProvider abstract
[<AbstractClass>]
type FeatureProvider =  class end
public abstract class FeatureProvider

Il tipo FeatureProvider espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo protetto FeatureProvider Inizializza una nuova istanza della classe FeatureProvider.

In alto

Metodi

  Nome Descrizione
Metodo pubblico Equals Determina se l'oggetto Object specificato è uguale all'oggetto Object corrente. (Ereditato da Object)
Metodo protetto Finalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulitura prima che l'oggetto stesso venga recuperato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblico GetHashCode Funge da funzione hash per un determinato tipo. (Ereditato da Object)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo protetto MemberwiseClone Consente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)

In alto

Note

Derivare dalla classe FeatureProvider astratta per estendere la fase di progettazione per i controlli personalizzati.

I provider di funzionalità sono gestiti dai connettori di funzionalità e sono associati agli oggetti tramite l'attributo dei metadati FeatureAttribute. Il connettore di funzionalità individua i tipi FeatureProvider da questi metadati. FeatureManager identifica il connettore di funzionalità richiesto per ciascun provider di funzionalità scoperto.

Le implementazioni comuni dei provider di funzionalità includono strumenti decorativi di selezione, menu di scelta rapida e editor di proprietà.

Per connettere un provider di funzionalità alla selezione primaria nell'area di progettazione, derivare da uno dei provider di funzionalità con l'oggetto PrimarySelectionPolicy, ad esempio PrimarySelectionAdornerProvider o

PrimarySelectionContextMenuProvider.

Esempi

Nell'esempio di codice seguente viene illustrato come derivare dalla classe FeatureProvider per implementare un provider di funzionalità personalizzato denominato DiagnosticsMenuProvider a un servizio personalizzato denominato IDiagnosticsService. Per l'elenco di codice completo, vedere Procedura: creare un connettore di funzionalità personalizzato.

' 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();
    }
}

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.Windows.Design.Features

FeatureConnector<TFeatureProviderType>

FeatureManager

PrimarySelectionAdornerProvider

PrimarySelectionContextMenuProvider

Altre risorse

Procedura: creare un connettore di funzionalità personalizzato

Provider di funzionalità e connettori di funzionalità

Informazioni sull'estensibilità Progettazione WPF