Export (0) Print
Expand All

IQueryAmbient Interface

Queries for whether a specified property should be treated as ambient in the current scope.

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

type IQueryAmbient =  interface end

The IQueryAmbient type exposes the following members.

  NameDescription
Public methodIsAmbientPropertyAvailableQueries for whether a specified named property can be considered ambient in the current scope.
Top

The purpose of an ambient property mechanism is to improve parsing time by informing a XAML object writer to avoid instantiating certain objects, in cases where it is known that the objects are for values that are temporary and not useful for a typical run time application. Normally, XAML lookups or XAML processing of a property get accessor would need to instantiate such objects to fill the object graph representation with ready-to-use values.

IQueryAmbient has one member: IsAmbientPropertyAvailable.

IQueryAmbient is a parallel mechanism to AmbientAttribute. IQueryAmbient is the specialized mechanism that avoids using reflection to determine information, and can also act situationally (a given object could choose to report true or false for IsAmbientPropertyAvailable), whereas the attribute is essentially static analysis). AmbientAttribute is the general mechanism that can be used by XAML object writers and that typically correlates to the dedicated XAML type system properties IsAmbient and IsAmbient.

WPF Implementations of IQueryAmbient

In WPF, IQueryAmbient is used for the resource dictionary lookup process. The lookup process gets successive Resources values throughout the WPF logical tree, working towards the root of the resource scope until either a key is found or the key is determined to not exist in scope. Normally, doing so would require instantiating a ResourceDictionary each time to receive the results. Declaring the contents of Resources as ambient so long as Resources exists optimizes this lookup process. In WPF, this interface is implemented in the following cases:

.NET Framework

Supported in: 4.6, 4.5, 4

.NET Framework Client Profile

Supported in: 4

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft