This article was translated by machine. To view in the article in English, select the English check box. You can also display the English text in a popup window by moving the mouse pointer over the text.
الترجمة
الأصلي
This documentation is archived and is not being maintained.

CacheRequest.AutomationElementMode الخاصية

Visual Studio 2010

الحصول أو تعيين القيمة التي تحدد ما إذا كانت العناصر التي تم إرجاعها يجب أن تحتوي على مراجع كاملة إلى الأساسي واجهة المستخدم (UI)، أو التخزين المؤقت فقط المعلومات.

مساحة الاسم:  System.Windows.Automation
التجميع:  UIAutomationClient (في UIAutomationClient.dll)

public AutomationElementMode AutomationElementMode { get; set; }

قيمة الخاصية

النوع: System.Windows.Automation.AutomationElementMode
Full في حالة وجود العناصر التي تم إرجاعها مرجع كامل إلى الأساسيةواجهة المستخدم (UI)؛ وإلاNone.

Full هي القيمة افتراضية، وتعين أن العناصر التي تم إرجاعها تحتوي على مرجع كامل إلى الأساسيةواجهة المستخدم. None تعين أن العناصر التي يتم إرجاعها لعدم وجود مرجع للمصدرواجهة المستخدم، وتتضمن فقط التخزين المؤقت للمعلومات.

العمليات معينة تشغيل عناصر، بما في ذلك GetCurrentPropertyValue، GetCurrentPattern، و SetFocus، تتطلب مرجع كامل؛ ومحاولة إلى تنفيذ هذه تشغيل عنصر يحتوي تشغيل أي نتائج في InvalidOperationException.

استخدام Noneيمكن أن يكون أكثر فعالية عندما تكون مطلوبة من الخصائص فقط، كـ تجنب مقدار الحمل المتضمنة في إعداد مراجع كاملة.

في المثال التالي، AutomationElementModeهو تعيين إلى Noneمع النتيجة التي مؤقتاً على فقط الخصائص والأنماط متوفر لكائن تم استردادها.


/// <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; ***/
}


نظام التشغيل Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008, نظام التشغيل Windows Server 2003

لا يدعم .NET Framework و .NET Compact Framework كافة الإصدارات الخاصة بكل نظام أساسي. للحصول على قائمة بالإصدارات المدعمة، راجع متطلبات النظام إطار عمل .NET.

.NET Framework

مدعوم في: 4, 3.5, 3.0

NET Framework. Client Profile

مدعوم في: 4
إظهار: