INameScope Interface


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Defines a contract for how names of elements should be accessed within a particular XAML namescope, and how to enforce uniqueness of names within that XAML namescope.

Namespace:   System.Windows.Markup
Assembly:  System.Xaml (in System.Xaml.dll)

public interface INameScope


Returns an object that has the provided identifying name.

System_CAPS_pubmethodRegisterName(String, Object)

Registers the provided name into the current XAML namescope.


Unregisters the provided name from the current XAML namescope.

This interface is implemented by classes that have child elements that are intended to be reused through the template or defer metaphor. Templates, factories and similar constructs must have unique XAML namescopes that are separate from a main object graph and root XAML. The principle here is that there should be no name collisions when objects created from those child elements are introduced to an application's object graph, and so that DOM operations and XAML reference techniques that rely on the name identifier can rely on name uniqueness in each XAML namescope.

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

This interface is implemented by the WPF class NameScope. Most XAML namescope operations in WPF operate by using NameScope instances, but information is occasionally communicated internally by using INameScope references.

Examples of WPF classes that use a factory or defer metaphor combined with XAML representation are Style and FrameworkTemplate. These implementations usually rely on the explicit versions of the interface methods available from the NameScope class.

.NET Framework
Available since 3.0
Return to top