Zwracanie właściwości od dostawcy automatyzacji interfejsu użytkownika
Uwaga
Ta dokumentacja jest przeznaczona dla deweloperów programu .NET Framework, którzy chcą używać zarządzanych klas automatyzacja interfejsu użytkownika zdefiniowanych w System.Windows.Automation przestrzeni nazw. Aby uzyskać najnowsze informacje na temat automatyzacja interfejsu użytkownika, zobacz Interfejs API usługi Windows Automation: automatyzacja interfejsu użytkownika.
Ten temat zawiera przykładowy kod, który pokazuje, jak dostawca automatyzacja interfejsu użytkownika może zwracać właściwości elementu do aplikacji klienckich.
W przypadku każdej właściwości, która nie obsługuje jawnie, dostawca musi zwrócić null
wartość (Nothing
w Visual Basic). Gwarantuje to, że automatyzacja interfejsu użytkownika próbuje uzyskać właściwość z innego źródła, takiego jak dostawca okna hosta.
Przykład
/// <summary>
/// Gets provider property values.
/// </summary>
/// <param name="propId">Property identifier.</param>
/// <returns>The value of the property.</returns>
object IRawElementProviderSimple.GetPropertyValue(int propId)
{
if (propId == AutomationElementIdentifiers.NameProperty.Id)
{
return "Custom list control";
}
else if (propId == AutomationElementIdentifiers.ControlTypeProperty.Id)
{
return ControlType.List.Id;
}
else if (propId == AutomationElementIdentifiers.IsContentElementProperty.Id)
{
return true;
}
else if (propId == AutomationElementIdentifiers.IsControlElementProperty.Id)
{
return true;
}
else
{
return null;
}
}
''' <summary>
''' Gets provider property values.
''' </summary>
''' <param name="propId">Property identifier.</param>
''' <returns>The value of the property.</returns>
Function GetPropertyValue(ByVal propId As Integer) As Object _
Implements IRawElementProviderSimple.GetPropertyValue
If propId = AutomationElementIdentifiers.NameProperty.Id Then
Return "Custom list control"
ElseIf propId = AutomationElementIdentifiers.ControlTypeProperty.Id Then
Return ControlType.List.Id
ElseIf propId = AutomationElementIdentifiers.IsContentElementProperty.Id Then
Return True
ElseIf propId = AutomationElementIdentifiers.IsControlElementProperty.Id Then
Return True
Else
Return Nothing
End If
End Function 'IRawElementProviderSimple.GetPropertyValue