ControlType.GetRequiredPatternSets メソッド

定義

一連の必要なパターンの配列を取得します。

public:
 cli::array <cli::array <System::Windows::Automation::AutomationPattern ^> ^> ^ GetRequiredPatternSets();
public System.Windows.Automation.AutomationPattern[][] GetRequiredPatternSets ();
member this.GetRequiredPatternSets : unit -> System.Windows.Automation.AutomationPattern[][]
Public Function GetRequiredPatternSets () As AutomationPattern()()

戻り値

一連の必要なパターンの配列。

次の例では、 クラスのControlType静的フィールドとして含まれるすべての種類の をControlType呼び出GetRequiredPatternSetsします。

/// <summary>
/// Obtains information about patterns supported by control types.
/// Control types are obtained by reflection.
/// </summary>
private void ListPatterns()
{
    // Any instance of a ControlType will do since we just want to get the type.
    ControlType controlTypeInstance = ControlType.Button;
    Type type = typeof(ControlType);
    System.Reflection.FieldInfo[] fields = type.GetFields();
    foreach (System.Reflection.FieldInfo field in fields)
    {
        if (field.IsStatic)
        {
            ControlType controlType = field.GetValue(controlTypeInstance) as ControlType;
            Console.WriteLine("\n******************** {0} never supports:",
                               controlType.ProgrammaticName);
            AutomationPattern[] neverSupportedPatterns =
                               controlType.GetNeverSupportedPatterns();
            if (neverSupportedPatterns.Length == 0)
            {
                Console.WriteLine("(None)");
            }
            else
            {
                foreach (AutomationPattern pattern in neverSupportedPatterns)
                {
                    Console.WriteLine(pattern.ProgrammaticName);
                }
            }

            Console.WriteLine("\n******************** {0} requires:",
                              controlType.ProgrammaticName);
            AutomationPattern[][] requiredPatternSets =
                              controlType.GetRequiredPatternSets();
            if (requiredPatternSets.Length == 0)
            {
                Console.WriteLine("(None)");
            }
            else
            {
                foreach (AutomationPattern[] patterns in requiredPatternSets)
                {
                    Console.WriteLine("Pattern set:");
                    foreach (AutomationPattern pattern in patterns)
                    {
                        Console.WriteLine(pattern.ProgrammaticName);
                    }
                    Console.WriteLine("--------------------");
                }
            }
        }
    }
}
''' <summary>
''' Obtains information about patterns supported by control types.
''' Control types are obtained by reflection.
''' </summary>
Private Sub ListPatterns()
    ' Any instance of a ControlType will do since we just want to get the type.
    Dim controlTypeInstance As ControlType = ControlType.Button
    Dim type As Type = GetType(ControlType)
    Dim fields() As System.Reflection.FieldInfo = type.GetFields()
    For Each field As System.Reflection.FieldInfo In fields
        If field.IsStatic Then
            Dim controlType As ControlType = TryCast(field.GetValue(controlTypeInstance), ControlType)
            Console.WriteLine(vbLf & "******************** {0} never supports:", controlType.ProgrammaticName)
            Dim neverSupportedPatterns() As AutomationPattern = controlType.GetNeverSupportedPatterns()
            If neverSupportedPatterns.Length = 0 Then
                Console.WriteLine("(None)")
            Else
                For Each pattern As AutomationPattern In neverSupportedPatterns
                    Console.WriteLine(pattern.ProgrammaticName)
                Next pattern
            End If

            Console.WriteLine(vbLf & "******************** {0} requires:", controlType.ProgrammaticName)
            Dim requiredPatternSets()() As AutomationPattern = controlType.GetRequiredPatternSets()
            If requiredPatternSets.Length = 0 Then
                Console.WriteLine("(None)")
            Else
                For Each patterns As AutomationPattern() In requiredPatternSets
                    Console.WriteLine("Pattern set:")
                    For Each pattern As AutomationPattern In patterns
                        Console.WriteLine(pattern.ProgrammaticName)
                    Next pattern
                    Console.WriteLine("--------------------")
                Next patterns
            End If
        End If
    Next field
End Sub

注釈

配列の各要素にはパターンの配列が含まれており、このコントロール型を持つ各要素は、これらの配列の少なくとも 1 つをサポートする必要があります。

このメソッドは、プロバイダー実装のフレームワークのテストなど、考えられるすべてのパターンを見つける必要があるクライアントUI オートメーションに役立ちます。

適用対象