ControlType.GetNeverSupportedPatterns Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Retrieves the pattern identifiers that are not supported by the control type.
public:
cli::array <System::Windows::Automation::AutomationPattern ^> ^ GetNeverSupportedPatterns();
public System.Windows.Automation.AutomationPattern[] GetNeverSupportedPatterns ();
member this.GetNeverSupportedPatterns : unit -> System.Windows.Automation.AutomationPattern[]
Public Function GetNeverSupportedPatterns () As AutomationPattern()
Returns
An array of UI Automation pattern identifiers.
Examples
The following example calls GetNeverSupportedPatterns on every kind of ControlType contained as a static field in the ControlType class.
/// <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
Remarks
This method is useful for UI Automation clients such as test frameworks for a provider implementation that need to find all control patterns that are not permitted on this control type.