NameScopePropertyAttribute Class


Specifies a property of the associated class that provides the XAML namescope value.

public ref class NameScopePropertyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Class, AllowMultiple=false, Inherited=true)]
public sealed class NameScopePropertyAttribute : Attribute
type NameScopePropertyAttribute = class
    inherit Attribute
Public NotInheritable Class NameScopePropertyAttribute
Inherits Attribute


In a typical object model / application model combination where XAML is used, the classes that are used as a XAML namescope are the classes that are generally used as root elements, or that support a page metaphor. These classes generally implement INameScope and the XAML namescope is created corresponding to the root by typical XAML processing behavior in context of a framework's programming model and application model.

If NameScopePropertyAttribute is used, the XAML namescope property value is expected to be an object that implements INameScope and holds the actual XAML namescope and its behavior.

There are two forms for this attribute: property name only, or type and property. The latter form should be used only for cases where the property that holds the XAML name scope is an attachable member. The attached member technique has the advantage that service classes can implement a XAML namescope concept that can support several different object types. Those object types then do not need to be explicitly related in class inheritance.

In previous versions of the .NET Framework, this class existed in the WPF-specific assembly WindowsBase. In .NET Framework 4, NameScopePropertyAttribute is in the System.Xaml assembly. For more information, see Types Migrated from WPF to System.Xaml.

WPF Usage Notes

In WPF, this attribute is applied to only a single type, DependencyObject. In this case the attributed property is the service class NameScope and its NameScope.NameScope attached property.



Initializes a new instance of the NameScopePropertyAttribute class with the specified name.

NameScopePropertyAttribute(String, Type)

Initializes a new instance of the NameScopePropertyAttribute class with the specified name and type.



Gets the name of the property that provides the XAML namescope.


Gets the owner type of the attached property that provides the XAML namescope support.


When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)



Returns a value that indicates whether this instance is equal to a specified object.

(Inherited from Attribute)

Returns the hash code for this instance.

(Inherited from Attribute)

Gets the Type of the current instance.

(Inherited from Object)

When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Inherited from Attribute)

When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)

Creates a shallow copy of the current Object.

(Inherited from Object)

Returns a string that represents the current object.

(Inherited from Object)

Explicit Interface Implementations

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)

Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Applies to

See also