AutomationElement.GetCachedPropertyValue AutomationElement.GetCachedPropertyValue AutomationElement.GetCachedPropertyValue AutomationElement.GetCachedPropertyValue Method

Définition

Récupère la valeur mise en cache de la propriété spécifiée à partir d'un AutomationElement.Retrieves the cached value of the specified property from an AutomationElement.

Surcharges

GetCachedPropertyValue(AutomationProperty) GetCachedPropertyValue(AutomationProperty) GetCachedPropertyValue(AutomationProperty) GetCachedPropertyValue(AutomationProperty)

Récupère la valeur de la propriété spécifiée à partir du cache de ce AutomationElement.Retrieves the value of the specified property from the cache of this AutomationElement. Une valeur par défaut appropriée pour le type de propriété est retournée pour les propriétés qui ne sont pas explicitement prises en charge par l'élément d'interface utilisateur (UI)user interface (UI) cible.An appropriate default value for the property type is returned for properties not explicitly supported by the target interface utilisateur (UI)user interface (UI) element.

GetCachedPropertyValue(AutomationProperty, Boolean) GetCachedPropertyValue(AutomationProperty, Boolean) GetCachedPropertyValue(AutomationProperty, Boolean) GetCachedPropertyValue(AutomationProperty, Boolean)

Récupère la valeur de la propriété spécifiée à partir du cache de ce AutomationElement, en ignorant éventuellement toute propriété par défaut.Retrieves the value of the specified property from the cache of this AutomationElement, optionally ignoring any default property.

Remarques

GetCachedPropertyValue Récupère la propriété spécifiée à partir du cache de la AutomationElement.GetCachedPropertyValue retrieves the specified property from the cache of the AutomationElement. Pour récupérer la propriété actuelle, appelez GetCurrentPropertyValue.To retrieve the current property, call GetCurrentPropertyValue.

GetCachedPropertyValue(AutomationProperty) GetCachedPropertyValue(AutomationProperty) GetCachedPropertyValue(AutomationProperty) GetCachedPropertyValue(AutomationProperty)

Récupère la valeur de la propriété spécifiée à partir du cache de ce AutomationElement.Retrieves the value of the specified property from the cache of this AutomationElement. Une valeur par défaut appropriée pour le type de propriété est retournée pour les propriétés qui ne sont pas explicitement prises en charge par l'élément d'interface utilisateur (UI)user interface (UI) cible.An appropriate default value for the property type is returned for properties not explicitly supported by the target interface utilisateur (UI)user interface (UI) element.

public:
 System::Object ^ GetCachedPropertyValue(System::Windows::Automation::AutomationProperty ^ property);
public object GetCachedPropertyValue (System.Windows.Automation.AutomationProperty property);
member this.GetCachedPropertyValue : System.Windows.Automation.AutomationProperty -> obj
Public Function GetCachedPropertyValue (property As AutomationProperty) As Object

Paramètres

property
AutomationProperty AutomationProperty AutomationProperty AutomationProperty

Identificateur de la propriété à récupérer.The identifier of the property to retrieve.

Retours

Objet contenant la valeur de la propriété spécifiée.An object containing the value of the specified property.

Exceptions

La propriété demandée n’est pas dans le cache.The requested property is not in the cache.

La interface utilisateur (UI)user interface (UI) pour le AutomationElement n’existe plus.The interface utilisateur (UI)user interface (UI) for the AutomationElement no longer exists.

Exemples

L’exemple suivant montre comment cette méthode peut être utilisée pour récupérer une propriété mise en cache.The following shows how this method can be used to retrieve a cached property.

/// <summary>
/// Caches and retrieves properties for a list item by using CacheRequest.Push.
/// </summary>
/// <param name="autoElement">Element from which to retrieve a child element.</param>
/// <remarks>
/// This code demonstrates various aspects of caching. It is not intended to be 
/// an example of a useful method.
/// </remarks>
private void CachePropertiesByPush(AutomationElement elementList)
{
    // Set up the request.
    CacheRequest cacheRequest = new CacheRequest();

    // Do not get a full reference to the cached objects, only to their cached properties and patterns.
    cacheRequest.AutomationElementMode = AutomationElementMode.None;

    // Cache all elements, regardless of whether they are control or content elements.
    cacheRequest.TreeFilter = Automation.RawViewCondition;

    // Property and pattern to cache.
    cacheRequest.Add(AutomationElement.NameProperty);
    cacheRequest.Add(SelectionItemPattern.Pattern);

    // Activate the request.
    cacheRequest.Push();

    // Obtain an element and cache the requested items.
    Condition cond = new PropertyCondition(AutomationElement.IsSelectionItemPatternAvailableProperty, true);
    AutomationElement elementListItem = elementList.FindFirst(TreeScope.Children, cond);

    // At this point, you could call another method that creates a CacheRequest and calls Push/Pop.
    // While that method was retrieving automation elements, the CacheRequest set in this method 
    // would not be active. 

    // Deactivate the request.
    cacheRequest.Pop();

    // Retrieve the cached property and pattern.
    String itemName = elementListItem.Cached.Name;
    SelectionItemPattern pattern = elementListItem.GetCachedPattern(SelectionItemPattern.Pattern) as SelectionItemPattern;

    // The following is an alternative way of retrieving the Name property.
    itemName = elementListItem.GetCachedPropertyValue(AutomationElement.NameProperty) as String;

    // This is yet another way, which returns AutomationElement.NotSupported if the element does
    // not supply a value. If the second parameter is false, a default name is returned.
    object objName = elementListItem.GetCachedPropertyValue(AutomationElement.NameProperty, true);
    if (objName == AutomationElement.NotSupported)
    {
        itemName = "Unknown";
    }
    else
    {
        itemName = objName as String;
    }

    // The following call raises an exception, because only the cached properties are available, 
    //  as specified by cacheRequest.AutomationElementMode. If AutomationElementMode had its
    //  default value (Full), this call would be valid.
    /*** bool enabled = elementListItem.Current.IsEnabled; ***/
}
''' <summary>
''' Caches and retrieves properties for a list item by using CacheRequest.Push.
''' </summary>
''' <param name="elementList">Element from which to retrieve a child element.</param>
''' <remarks>
''' This code demonstrates various aspects of caching. It is not intended to be 
''' an example of a useful method.
''' </remarks>
Private Sub CachePropertiesByPush(ByVal elementList As AutomationElement)
    ' Set up the request.
    Dim cacheRequest As New CacheRequest()

    ' Do not get a full reference to the cached objects, only to their cached properties and patterns.
    cacheRequest.AutomationElementMode = AutomationElementMode.None

    ' Cache all elements, regardless of whether they are control or content elements.
    cacheRequest.TreeFilter = Automation.RawViewCondition

    ' Property and pattern to cache.
    cacheRequest.Add(AutomationElement.NameProperty)
    cacheRequest.Add(SelectionItemPattern.Pattern)

    ' Activate the request.
    cacheRequest.Push()

    ' Obtain an element and cache the requested items.
    Dim myCondition As New PropertyCondition(AutomationElement.IsSelectionItemPatternAvailableProperty, _
        True)
    Dim elementListItem As AutomationElement = elementList.FindFirst(TreeScope.Children, myCondition)

    ' At this point, you could call another method that creates a CacheRequest and calls Push/Pop.
    ' While that method was retrieving automation elements, the CacheRequest set in this method 
    ' would not be active. 
    ' Deactivate the request.
    cacheRequest.Pop()

    ' Retrieve the cached property and pattern.
    Dim itemName As String = elementListItem.Cached.Name
    Dim pattern As SelectionItemPattern = _
        DirectCast(elementListItem.GetCachedPattern(SelectionItemPattern.Pattern), SelectionItemPattern)

    ' The following is an alternative way of retrieving the Name property.
    itemName = CStr(elementListItem.GetCachedPropertyValue(AutomationElement.NameProperty))

    ' This is yet another way, which returns AutomationElement.NotSupported if the element does
    ' not supply a value. If the second parameter is false, a default name is returned.
    Dim objName As Object = elementListItem.GetCachedPropertyValue(AutomationElement.NameProperty, True)
    If objName Is AutomationElement.NotSupported Then
        itemName = "Unknown"
    Else
        itemName = CStr(objName)
    End If
    ' The following call raises an exception, because only the cached properties are available, 
    '  as specified by cacheRequest.AutomationElementMode. If AutomationElementMode had its
    '  default value (Full), this call would be valid.
    '** bool enabled = elementListItem.Current.IsEnabled; **

End Sub

Remarques

Si le fournisseur UI Automation pour l’élément lui-même prend en charge la propriété, la valeur de la propriété est retournée.If the UI Automation provider for the element itself supports the property, the value of the property is returned. Dans le cas contraire, une propriété Automation de l'interface utilisateurUI Automation par défaut spécifiée par est retournée.Otherwise, a default property specified by Automation de l'interface utilisateurUI Automation is returned. Pour plus d’informations sur les propriétés par défaut, consultez les champs AutomationElementd’identificateur de AcceleratorKeyPropertypropriété de, tels que.For information on default properties, see the property identifier fields of AutomationElement, such as AcceleratorKeyProperty.

GetCachedPropertyValueRécupère la propriété spécifiée à partir AutomationElementdu cache de.GetCachedPropertyValue retrieves the specified property from the AutomationElement's cache. Pour récupérer l’objet actuel pour l’appel GetCurrentPropertyValuede propriété spécifié.To retrieve the current object for the specified property call GetCurrentPropertyValue.

Cette méthode lève une exception si la propriété demandée n’a pas été mise en cache précédemment.This method throws an exception if the requested property was not previously cached.

GetCachedPropertyValue(AutomationProperty, Boolean) GetCachedPropertyValue(AutomationProperty, Boolean) GetCachedPropertyValue(AutomationProperty, Boolean) GetCachedPropertyValue(AutomationProperty, Boolean)

Récupère la valeur de la propriété spécifiée à partir du cache de ce AutomationElement, en ignorant éventuellement toute propriété par défaut.Retrieves the value of the specified property from the cache of this AutomationElement, optionally ignoring any default property.

public:
 System::Object ^ GetCachedPropertyValue(System::Windows::Automation::AutomationProperty ^ property, bool ignoreDefaultValue);
public object GetCachedPropertyValue (System.Windows.Automation.AutomationProperty property, bool ignoreDefaultValue);
member this.GetCachedPropertyValue : System.Windows.Automation.AutomationProperty * bool -> obj
Public Function GetCachedPropertyValue (property As AutomationProperty, ignoreDefaultValue As Boolean) As Object

Paramètres

property
AutomationProperty AutomationProperty AutomationProperty AutomationProperty

Identificateur de la propriété à récupérer.The identifier of the property to retrieve.

ignoreDefaultValue
Boolean Boolean Boolean Boolean

Valeur qui spécifie si une valeur par défaut doit être ignorée si la propriété spécifiée n'est pas prise en charge.A value that specifies whether a default value should be ignored if the specified property is not supported.

Retours

Objet contenant la valeur de la propriété spécifiée, ou NotSupported si l'élément ne fournit pas de valeur et que ignoreDefaultValue a la valeur true.An object containing the value of the specified property, or NotSupported if the element does not supply a value and ignoreDefaultValue is true.

Exceptions

La propriété demandée n’est pas dans le cache.The requested property is not in the cache.

Exemples

L’exemple suivant montre comment cette méthode peut être utilisée pour récupérer une propriété mise en cache.The following example shows how this method can be used to retrieve a cached property.

/// <summary>
/// Caches and retrieves properties for a list item by using CacheRequest.Push.
/// </summary>
/// <param name="autoElement">Element from which to retrieve a child element.</param>
/// <remarks>
/// This code demonstrates various aspects of caching. It is not intended to be 
/// an example of a useful method.
/// </remarks>
private void CachePropertiesByPush(AutomationElement elementList)
{
    // Set up the request.
    CacheRequest cacheRequest = new CacheRequest();

    // Do not get a full reference to the cached objects, only to their cached properties and patterns.
    cacheRequest.AutomationElementMode = AutomationElementMode.None;

    // Cache all elements, regardless of whether they are control or content elements.
    cacheRequest.TreeFilter = Automation.RawViewCondition;

    // Property and pattern to cache.
    cacheRequest.Add(AutomationElement.NameProperty);
    cacheRequest.Add(SelectionItemPattern.Pattern);

    // Activate the request.
    cacheRequest.Push();

    // Obtain an element and cache the requested items.
    Condition cond = new PropertyCondition(AutomationElement.IsSelectionItemPatternAvailableProperty, true);
    AutomationElement elementListItem = elementList.FindFirst(TreeScope.Children, cond);

    // At this point, you could call another method that creates a CacheRequest and calls Push/Pop.
    // While that method was retrieving automation elements, the CacheRequest set in this method 
    // would not be active. 

    // Deactivate the request.
    cacheRequest.Pop();

    // Retrieve the cached property and pattern.
    String itemName = elementListItem.Cached.Name;
    SelectionItemPattern pattern = elementListItem.GetCachedPattern(SelectionItemPattern.Pattern) as SelectionItemPattern;

    // The following is an alternative way of retrieving the Name property.
    itemName = elementListItem.GetCachedPropertyValue(AutomationElement.NameProperty) as String;

    // This is yet another way, which returns AutomationElement.NotSupported if the element does
    // not supply a value. If the second parameter is false, a default name is returned.
    object objName = elementListItem.GetCachedPropertyValue(AutomationElement.NameProperty, true);
    if (objName == AutomationElement.NotSupported)
    {
        itemName = "Unknown";
    }
    else
    {
        itemName = objName as String;
    }

    // The following call raises an exception, because only the cached properties are available, 
    //  as specified by cacheRequest.AutomationElementMode. If AutomationElementMode had its
    //  default value (Full), this call would be valid.
    /*** bool enabled = elementListItem.Current.IsEnabled; ***/
}
''' <summary>
''' Caches and retrieves properties for a list item by using CacheRequest.Push.
''' </summary>
''' <param name="elementList">Element from which to retrieve a child element.</param>
''' <remarks>
''' This code demonstrates various aspects of caching. It is not intended to be 
''' an example of a useful method.
''' </remarks>
Private Sub CachePropertiesByPush(ByVal elementList As AutomationElement)
    ' Set up the request.
    Dim cacheRequest As New CacheRequest()

    ' Do not get a full reference to the cached objects, only to their cached properties and patterns.
    cacheRequest.AutomationElementMode = AutomationElementMode.None

    ' Cache all elements, regardless of whether they are control or content elements.
    cacheRequest.TreeFilter = Automation.RawViewCondition

    ' Property and pattern to cache.
    cacheRequest.Add(AutomationElement.NameProperty)
    cacheRequest.Add(SelectionItemPattern.Pattern)

    ' Activate the request.
    cacheRequest.Push()

    ' Obtain an element and cache the requested items.
    Dim myCondition As New PropertyCondition(AutomationElement.IsSelectionItemPatternAvailableProperty, _
        True)
    Dim elementListItem As AutomationElement = elementList.FindFirst(TreeScope.Children, myCondition)

    ' At this point, you could call another method that creates a CacheRequest and calls Push/Pop.
    ' While that method was retrieving automation elements, the CacheRequest set in this method 
    ' would not be active. 
    ' Deactivate the request.
    cacheRequest.Pop()

    ' Retrieve the cached property and pattern.
    Dim itemName As String = elementListItem.Cached.Name
    Dim pattern As SelectionItemPattern = _
        DirectCast(elementListItem.GetCachedPattern(SelectionItemPattern.Pattern), SelectionItemPattern)

    ' The following is an alternative way of retrieving the Name property.
    itemName = CStr(elementListItem.GetCachedPropertyValue(AutomationElement.NameProperty))

    ' This is yet another way, which returns AutomationElement.NotSupported if the element does
    ' not supply a value. If the second parameter is false, a default name is returned.
    Dim objName As Object = elementListItem.GetCachedPropertyValue(AutomationElement.NameProperty, True)
    If objName Is AutomationElement.NotSupported Then
        itemName = "Unknown"
    Else
        itemName = CStr(objName)
    End If
    ' The following call raises an exception, because only the cached properties are available, 
    '  as specified by cacheRequest.AutomationElementMode. If AutomationElementMode had its
    '  default value (Full), this call would be valid.
    '** bool enabled = elementListItem.Current.IsEnabled; **

End Sub

Remarques

GetCachedPropertyValue Récupère la propriété spécifiée à partir du cache de la AutomationElement.GetCachedPropertyValue retrieves the specified property from the cache for the AutomationElement. Pour récupérer la propriété actuelle, appelez GetCurrentPropertyValue.To retrieve the current property, call GetCurrentPropertyValue.

En passant false dans ignoreDefaultValue équivaut à appeler AutomationElement.GetCachedPropertyValue(AutomationProperty).Passing false in ignoreDefaultValue is equivalent to calling AutomationElement.GetCachedPropertyValue(AutomationProperty).

Si le fournisseur UI Automation pour l’élément lui-même prend en charge la propriété, la valeur de la propriété est retournée.If the UI Automation provider for the element itself supports the property, the value of the property is returned. Sinon, si ignoreDefaultValue est false, une propriété par défaut spécifiée Automation de l'interface utilisateurUI Automation par est retournée.Otherwise, if ignoreDefaultValue is false, a default property specified by Automation de l'interface utilisateurUI Automation is returned. Pour plus d’informations sur les propriétés par défaut, consultez les champs AutomationElementd’identificateur de AcceleratorKeyPropertypropriété de, tels que.For information on default properties, see the property identifier fields of AutomationElement, such as AcceleratorKeyProperty.

Cette méthode lève une exception si la propriété demandée n’a pas été mise en cache précédemment.This method throws an exception if the requested property was not previously cached.

S’applique à