AutomationElement.GetCachedPropertyValue Método

Definição

Recupera o valor armazenado em cache da propriedade especificada de um AutomationElement.Retrieves the cached value of the specified property from an AutomationElement.

Sobrecargas

GetCachedPropertyValue(AutomationProperty)

Recupera o valor da propriedade especificada do cache deste AutomationElement.Retrieves the value of the specified property from the cache of this AutomationElement. Um valor padrão apropriado para o tipo de propriedade é retornado para propriedades que não têm suporte explícito pelo elemento UI (interface do usuário)user interface (UI) de destino.An appropriate default value for the property type is returned for properties not explicitly supported by the target UI (interface do usuário)user interface (UI) element.

GetCachedPropertyValue(AutomationProperty, Boolean)

Recupera o valor da propriedade especificada do cache deste AutomationElement, opcionalmente, ignorando a propriedade padrão.Retrieves the value of the specified property from the cache of this AutomationElement, optionally ignoring any default property.

Comentários

GetCachedPropertyValueRecupera a propriedade especificada do cache do AutomationElement.GetCachedPropertyValue retrieves the specified property from the cache of the AutomationElement. Para recuperar a propriedade atual, chame GetCurrentPropertyValue.To retrieve the current property, call GetCurrentPropertyValue.

GetCachedPropertyValue(AutomationProperty)

Recupera o valor da propriedade especificada do cache deste AutomationElement.Retrieves the value of the specified property from the cache of this AutomationElement. Um valor padrão apropriado para o tipo de propriedade é retornado para propriedades que não têm suporte explícito pelo elemento UI (interface do usuário)user interface (UI) de destino.An appropriate default value for the property type is returned for properties not explicitly supported by the target UI (interface do usuário)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

Parâmetros

property
AutomationProperty

O identificador da propriedade a ser recuperado.The identifier of the property to retrieve.

Retornos

Um objeto que contém o valor da propriedade especificada.An object containing the value of the specified property.

Exceções

A propriedade solicitada não está armazenada no cache.The requested property is not in the cache.

O UI (interface do usuário)user interface (UI) para o AutomationElement não existe mais.The UI (interface do usuário)user interface (UI) for the AutomationElement no longer exists.

Exemplos

O seguinte mostra como esse método pode ser usado para recuperar uma propriedade armazenada em 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

Comentários

Se o provedor de automação da interface do usuário para o elemento em si der suporte à propriedade, o valor da propriedade será retornado.If the UI Automation provider for the element itself supports the property, the value of the property is returned. Caso contrário, uma propriedade padrão especificada Automação da interface do usuárioUI Automation por será retornada.Otherwise, a default property specified by Automação da interface do usuárioUI Automation is returned. Para obter informações sobre as propriedades padrão, consulte os campos de AutomationElementidentificador de propriedade AcceleratorKeyPropertydo, como.For information on default properties, see the property identifier fields of AutomationElement, such as AcceleratorKeyProperty.

GetCachedPropertyValueRecupera a propriedade especificada do AutomationElementcache do.GetCachedPropertyValue retrieves the specified property from the AutomationElement's cache. Para recuperar o objeto atual para a chamada GetCurrentPropertyValuede propriedade especificada.To retrieve the current object for the specified property call GetCurrentPropertyValue.

Esse método gera uma exceção se a propriedade solicitada não tiver sido armazenada em cache anteriormente.This method throws an exception if the requested property was not previously cached.

GetCachedPropertyValue(AutomationProperty, Boolean)

Recupera o valor da propriedade especificada do cache deste AutomationElement, opcionalmente, ignorando a propriedade padrão.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

Parâmetros

property
AutomationProperty

O identificador da propriedade a ser recuperado.The identifier of the property to retrieve.

ignoreDefaultValue
Boolean

Um valor que especifica se um valor padrão deverá ser ignorado se não for compatível com a propriedade especificada.A value that specifies whether a default value should be ignored if the specified property is not supported.

Retornos

Um objeto que contém o valor da propriedade especificada ou NotSupported, se o elemento não fornecer um valor e ignoreDefaultValue for true.An object containing the value of the specified property, or NotSupported if the element does not supply a value and ignoreDefaultValue is true.

Exceções

A propriedade solicitada não está armazenada no cache.The requested property is not in the cache.

A interface do usuário do AutomationElement não existe mais.The UI for the AutomationElement no longer exists.

Exemplos

O exemplo a seguir mostra como esse método pode ser usado para recuperar uma propriedade armazenada em 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

Comentários

GetCachedPropertyValueRecupera a propriedade especificada do cache para o AutomationElement.GetCachedPropertyValue retrieves the specified property from the cache for the AutomationElement. Para recuperar a propriedade atual, chame GetCurrentPropertyValue.To retrieve the current property, call GetCurrentPropertyValue.

A passagem falseéequivalente à chamada AutomationElement.GetCachedPropertyValue(AutomationProperty). ignoreDefaultValuePassing false in ignoreDefaultValue is equivalent to calling AutomationElement.GetCachedPropertyValue(AutomationProperty).

Se o provedor de automação da interface do usuário para o elemento em si der suporte à propriedade, o valor da propriedade será retornado.If the UI Automation provider for the element itself supports the property, the value of the property is returned. Caso contrário, ignoreDefaultValue se falsefor, uma propriedade padrão especificada Automação da interface do usuárioUI Automation por será retornada.Otherwise, if ignoreDefaultValue is false, a default property specified by Automação da interface do usuárioUI Automation is returned. Para obter informações sobre as propriedades padrão, consulte os campos de AutomationElementidentificador de propriedade AcceleratorKeyPropertydo, como.For information on default properties, see the property identifier fields of AutomationElement, such as AcceleratorKeyProperty.

Esse método gera uma exceção se a propriedade solicitada não tiver sido armazenada em cache anteriormente.This method throws an exception if the requested property was not previously cached.

Aplica-se a