Compartir a través de


FeatureProvider (Clase)

Actualización: noviembre 2007

Agrega una contribución específica de la clase a una característica.

Espacio de nombres:  Microsoft.Windows.Design.Features
Ensamblado:  Microsoft.Windows.Design.Extensibility (en Microsoft.Windows.Design.Extensibility.dll)

Sintaxis

Public MustInherit Class FeatureProvider

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

Comentarios

Derive de la clase abstracta FeatureProvider para extender el tiempo de diseño para los controles personalizados.

Los proveedores de características los administran los conectores de características y están asociados a los objetos a través del atributo de metadatos FeatureAttribute. El conector de características detecta los tipos FeatureProvider de estos metadatos. FeatureManager identifica el conector de características necesario para cada proveedor de características detectado.

Entre las implementaciones comunes del proveedor de características se incluyen adornos de selección, menús contextuales y editores de propiedades.

Para asociar un proveedor de características a la selección principal en la superficie de diseño, derive de uno de los proveedores de características con PrimarySelectionPolicy aplicado, por ejemplo PrimarySelectionAdornerProvider o

PrimarySelectionContextMenuProvider.

Ejemplos

En el siguiente ejemplo de código se muestra cómo derivar de la clase FeatureProvider para implementar un proveedor de características personalizado denominado DiagnosticsMenuProvider con un servicio personalizado denominado IDiagnosticsService. Para obtener una lista de código completa, vea Cómo: Crear un conector de características personalizado.

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

Jerarquía de herencia

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

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

FeatureProvider (Miembros)

Microsoft.Windows.Design.Features (Espacio de nombres)

FeatureConnector<TFeatureProviderType>

FeatureManager

PrimarySelectionAdornerProvider

PrimarySelectionContextMenuProvider

Otros recursos

Cómo: Crear un conector de características personalizado

Proveedores de características y conectores de características

Introducción a la extensibilidad de WPF Designer