Partilhar via


Classe FeatureProvider

Adiciona uma classe específica de contribuição a um recurso.

Namespace:  Microsoft.Windows.Design.Features
Assembly:  Microsoft.Windows.Design.Extensibility (em Microsoft.Windows.Design.Extensibility.dll)

Sintaxe

Public MustInherit Class FeatureProvider

Dim instance As FeatureProvider
public abstract class FeatureProvider
public ref class FeatureProvider abstract
public abstract class FeatureProvider

Comentários

Derivar o abstract FeatureProvider classe para estender o time de design para os controles personalizados.

Provedores de recurso são gerenciadas pelo recurso de conectores e estão associados a objetos por meio de FeatureAttribute atributo de metadados. O conector de recurso descobre FeatureProvider tipos desses metadados.The FeatureManager identifica o conector do recurso necessário para cada provedor de recurso de descoberta.

Implementações de provedor de recurso comuns incluem adorners seleção, menus de contexto e editores de propriedade.

Para anexar um provedor de recurso a seleção principal na área de design, derivar de um dos provedores de recurso com o PrimarySelectionPolicy aplicado, por exemplo PrimarySelectionAdornerProvider ou

PrimarySelectionContextMenuProvider.

Exemplos

O exemplo de código a seguir mostra como para derivar a partir de FeatureProvider classe para implementar um provedor de recurso personalizado chamado DiagnosticsMenuProvider com um serviço personalizado chamado IDiagnosticsService. Para obter uma lista completa de código, consulte Como: Criar um conector de recurso Personalizar.

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

Hierarquia de herança

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

Acesso thread-safe

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Membros FeatureProvider

Namespace Microsoft.Windows.Design.Features

FeatureConnector<TFeatureProviderType>

FeatureManager

PrimarySelectionAdornerProvider

PrimarySelectionContextMenuProvider

Outros recursos

Como: Criar um conector de recurso Personalizar

Recurso provedores e conectores de recursos

Noções básicas sobre extensibilidade Designer WPF