Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Mise à jour : novembre 2007
Ajoute à une fonctionnalité une contribution spécifique à la classe.
Espace de noms : Microsoft.Windows.Design.Features
Assembly : Microsoft.Windows.Design.Extensibility (dans Microsoft.Windows.Design.Extensibility.dll)
Syntaxe
Public MustInherit Class FeatureProvider
Dim instance As FeatureProvider
public abstract class FeatureProvider
public ref class FeatureProvider abstract
public abstract class FeatureProvider
Notes
Dérive de la classe abstraite FeatureProvider pour étendre le moment du design de vos contrôles personnalisés.
Les fournisseurs de fonctionnalités sont gérés par connecteurs de fonctionnalités et sont associés aux objets à travers l'attribut de métadonnées FeatureAttribute. Le connecteur de fonctionnalités découvre des types FeatureProvider à partir de ces métadonnées. FeatureManager identifie le connecteur de fonctionnalités requis pour chaque fournisseur de fonctionnalités découvert.
Les implémentations communes d'un fournisseur de fonctionnalités regroupent les ornements, les menus contextuels et les éditeurs de propriétés.
Pour joindre un fournisseur de fonctionnalités à la sélection primaire sur l'aire de conception, dérivez de l'un des fournisseurs de fonctionnalités auquel PrimarySelectionPolicy a été par exemple PrimarySelectionAdornerProvider ou
PrimarySelectionContextMenuProvider.
Exemples
L'exemple de code suivant indique comment dériver de la classe FeatureProvider pour implémenter un fournisseur de fonctionnalités personnalisé nommé DiagnosticsMenuProvider avec un service personnalisé nommé IDiagnosticsService. Pour obtenir l'intégralité du code, consultez Comment : créer un connecteur de fonctionnalités personnalisé.
' 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();
}
}
Hiérarchie d'héritage
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
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Voir aussi
Référence
Microsoft.Windows.Design.Features, espace de noms
FeatureConnector<TFeatureProviderType>
PrimarySelectionAdornerProvider
PrimarySelectionContextMenuProvider
Autres ressources
Comment : créer un connecteur de fonctionnalités personnalisé
Fournisseurs de fonctionnalités et connecteurs de fonctionnalités