更新 : 2007 年 11 月
RequirementValidator クラスによって使用される属性を定義します。
名前空間 : Microsoft.Windows.Design
アセンブリ : Microsoft.Windows.Design.Extensibility (Microsoft.Windows.Design.Extensibility.dll 内)
構文
'宣言
Public MustInherit Class RequirementAttribute _
Inherits Attribute
'使用
Dim instance As RequirementAttribute
public abstract class RequirementAttribute : Attribute
public ref class RequirementAttribute abstract : public Attribute
public abstract class RequirementAttribute extends Attribute
解説
機能プロバイダや機能コネクタの要件を指定するには、RequirementAttribute 抽象クラスから派生します。
RequirementValidator は、RequirementAttribute 属性の型を調べます。見つかった RequirementAttribute ごとに、MeetsRequirement 抽象メソッドを呼び出し、EditingContext クラスのインスタンスを渡します。RequiresServiceAttribute などのクラスは RequirementAttribute から派生したもので、指定された要件の存在についてコンテキストを確認します。
このシステムにより、デザイナは編集中のコンテキストで正常に実行されるコードのみをアクティブにできます。
カスタム要件を定義するには、RequirementAttribute を派生させ、MeetsRequirement 抽象メソッドを実装します。
例
RequirementAttribute の派生である UsesItemPolicyAttribute を使用して、カスタム サロゲート ポリシーを機能プロバイダにアタッチする方法を次のコード例に示します。完全なコードの一覧については、「方法 : サロゲート ポリシーを作成する」を参照してください。
' The DockPanelAdornerProvider class implements an adorner
' that you can use to set the Margin property by using a
' drag operation. The DockPanelPolicy class enables a
' container policy for offering additional tasks and
' adorners on the panel's children.
<UsesItemPolicy(GetType(DockPanelPolicy))> _
Class DockPanelAdornerProvider
Inherits AdornerProvider
Public Sub New()
' The adorner is a Rectangle element.
Dim r As New Rectangle()
r.Width = 23.0
r.Height = 23.0
r.Fill = AdornerColors.GlyphFillBrush
' Set the rectangle's placement in the adorner panel.
Dim placement As New AdornerPlacementCollection()
placement.PositionRelativeToAdornerWidth(-1, 0)
placement.SizeRelativeToAdornerDesiredHeight(1.0, 0)
placement.SizeRelativeToAdornerDesiredWidth(1.0, 0)
placement.PositionRelativeToAdornerHeight(-1.0, 0)
AdornerPanel.SetPlacements(r, placement)
Dim p As New AdornerPanel()
p.Children.Add(r)
AdornerPanel.SetTask(r, New DockPanelMarginTask())
Adorners.Add(p)
End Sub
End Class
// The DockPanelAdornerProvider class implements an adorner
// that you can use to set the Margin property by using a
// drag operation. The DockPanelPolicy class enables a
// container policy for offering additional tasks and
// adorners on the panel's children.
[UsesItemPolicy(typeof(DockPanelPolicy))]
class DockPanelAdornerProvider : AdornerProvider
{
public DockPanelAdornerProvider()
{
// The adorner is a Rectangle element.
Rectangle r = new Rectangle();
r.Width = 23.0;
r.Height = 23.0;
r.Fill = AdornerColors.GlyphFillBrush;
// Set the rectangle's placement in the adorner panel.
AdornerPlacementCollection placement = new AdornerPlacementCollection();
placement.PositionRelativeToAdornerWidth(-1, 0);
placement.SizeRelativeToAdornerDesiredHeight(1.0, 0);
placement.SizeRelativeToAdornerDesiredWidth(1.0, 0);
placement.PositionRelativeToAdornerHeight(-1.0, 0);
AdornerPanel.SetPlacements(r, placement);
AdornerPanel p = new AdornerPanel();
p.Children.Add(r);
AdornerPanel.SetTask(r, new DockPanelMarginTask());
Adorners.Add(p);
}
}
継承階層
System.Object
System.Attribute
Microsoft.Windows.Design.RequirementAttribute
Microsoft.Windows.Design.Policies.UsesItemPolicyAttribute
Microsoft.Windows.Design.RequiresContextItemAttribute
Microsoft.Windows.Design.RequiresServiceAttribute
スレッド セーフ
この型のすべてのパブリック static (Visual Basic では Shared) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。