Share via


UsesItemPolicyAttribute Class

Restricts a feature provider to a specified policy.

Namespace:  Microsoft.Windows.Design.Policies
Assembly:  Microsoft.Windows.Design.Extensibility (in Microsoft.Windows.Design.Extensibility.dll)

Syntax

'Declaration
<AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple := True)> _
Public NotInheritable Class UsesItemPolicyAttribute _
    Inherits RequirementAttribute
'Usage
Dim instance As UsesItemPolicyAttribute
[AttributeUsageAttribute(AttributeTargets.Class, AllowMultiple = true)]
public sealed class UsesItemPolicyAttribute : RequirementAttribute
[AttributeUsageAttribute(AttributeTargets::Class, AllowMultiple = true)]
public ref class UsesItemPolicyAttribute sealed : public RequirementAttribute
public final class UsesItemPolicyAttribute extends RequirementAttribute

Remarks

Not all extensions support policies.

Examples

The following code example shows how to attach a custom surrogate policy to a feature provider by using UsesItemPolicyAttribute. For a full code listing, see How to: Create a Surrogate Policy.

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

Inheritance Hierarchy

System.Object
  System.Attribute
    Microsoft.Windows.Design.RequirementAttribute
      Microsoft.Windows.Design.Policies.UsesItemPolicyAttribute

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

See Also

Reference

UsesItemPolicyAttribute Members

Microsoft.Windows.Design.Policies Namespace

ItemPolicy

SelectionPolicy

FeatureProvider

FeatureConnectorAttribute

Other Resources

Feature Providers and Feature Connectors

Understanding WPF Designer Extensibility