FeatureProvider クラス
更新 : 2007 年 11 月
機能にクラス固有の処理を追加します。
名前空間 : Microsoft.Windows.Design.Features
アセンブリ : Microsoft.Windows.Design.Extensibility (Microsoft.Windows.Design.Extensibility.dll 内)
構文
'宣言
Public MustInherit Class FeatureProvider
'使用
Dim instance As FeatureProvider
public abstract class FeatureProvider
public ref class FeatureProvider abstract
public abstract class FeatureProvider
解説
抽象 FeatureProvider クラスから派生して、カスタム コントロールのデザイン時の外観または動作を拡張します。
機能プロバイダは機能コネクタによって管理され、FeatureAttribute メタデータ属性を介してオブジェクトと関連付けられます。機能コネクタは、このメタデータから FeatureProvider 型を検出します。FeatureManager は、検出されたすべての機能プロバイダに対して必要な機能コネクタを識別します。
一般的な機能プロバイダの実装には、選択装飾、コンテキスト メニュー、プロパティ エディタなどがあります。
機能プロバイダをデザイン サーフェイス上の主要選択にアタッチするには、機能プロバイダの 1 つから派生する際に、PrimarySelectionPolicy を次のように適用します : PrimarySelectionAdornerProvider、
PrimarySelectionContextMenuProvider。
例
FeatureProvider クラスから派生して、IDiagnosticsService という名前のカスタム サービスで DiagnosticsMenuProvider という名前のカスタム機能プロバイダを実装する方法を次のコード例に示します。完全なコードの一覧については、「方法 : カスタム機能コネクタを作成する」を参照してください。
' 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();
}
}
継承階層
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
スレッド セーフ
この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
参照
参照
Microsoft.Windows.Design.Features 名前空間
FeatureConnector<TFeatureProviderType>
PrimarySelectionAdornerProvider
PrimarySelectionContextMenuProvider