Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
W tym temacie pokazano, jak zaimplementować co najmniej jeden wzorzec kontroli u dostawcy automatyzacja interfejsu użytkownika, aby aplikacje klienckie mogły manipulować kontrolkami i pobierać z nich dane.
Obsługa wzorców kontrolek
Zaimplementuj odpowiednie interfejsy dla wzorców sterujących, które element powinien obsługiwać, na przykład IInvokeProvider dla elementu InvokePattern.
Zwróć obiekt zawierający implementację każdego interfejsu sterującego w implementacji polecenia IRawElementProviderSimple.GetPatternProvider
Przykład 1
W poniższym przykładzie przedstawiono implementację pola listy niestandardowej ISelectionProvider z jednym wyborem. Zwraca trzy właściwości i pobiera aktualnie wybrany element.
#region ISelectionProvider Members
/// <summary>
/// Specifies whether selection of more than one item at a time is supported.
/// </summary>
public bool CanSelectMultiple
{
get
{
return false;
}
}
/// <summary>
/// Specifies whether the list has to have an item selected at all times.
/// </summary>
public bool IsSelectionRequired
{
get
{
return true;
}
}
/// <summary>
/// Returns the automation provider for the selected list item.
/// </summary>
/// <returns>The selected item.</returns>
/// <remarks>
/// MyList is an ArrayList collection of providers for items in the list box.
/// SelectedIndex is the index of the selected item.
/// </remarks>
public IRawElementProviderSimple[] GetSelection()
{
if (SelectedIndex >= 0)
{
IRawElementProviderSimple itemProvider = (IRawElementProviderSimple)MyList[SelectedIndex];
IRawElementProviderSimple[] providers = { itemProvider };
return providers;
}
else
{
return null;
}
}
#endregion ISelectionProvider Members
#Region "ISelectionProvider Members"
''' <summary>
''' Specifies whether selection of more than one item at a time is supported.
''' </summary>
Public ReadOnly Property CanSelectMultiple() As Boolean _
Implements ISelectionProvider.CanSelectMultiple
Get
Return False
End Get
End Property
''' <summary>
''' Specifies whether the list has to have an item selected at all times.
''' </summary>
Public ReadOnly Property IsSelectionRequired() As Boolean _
Implements ISelectionProvider.IsSelectionRequired
Get
Return True
End Get
End Property
''' <summary>
''' Returns the automation provider for the selected list item.
''' </summary>
''' <returns>The selected item.</returns>
''' <remarks>
''' MyList is an ArrayList collection of providers for items in the list box.
''' SelectedIndex is the index of the selected item.
''' </remarks>
Public Function GetSelection() As IRawElementProviderSimple() _
Implements ISelectionProvider.GetSelection
If SelectedIndex >= 0 Then
Dim itemProvider As IRawElementProviderSimple = DirectCast(MyList(SelectedIndex), IRawElementProviderSimple)
Dim providers(1) As IRawElementProviderSimple
providers(0) = itemProvider
Return providers
Else
Return Nothing
End If
End Function 'GetSelection
#End Region
Private Members As ISelectionProvider
Przykład 2
W poniższym przykładzie pokazano implementację GetPatternProvider , która zwraca klasę implementjącą ISelectionProviderelement . Większość kontrolek pól listy obsługuje również inne wzorce, ale w tym przykładzie jest zwracane odwołanie o wartości null (Nothing w programie Microsoft Visual Basic .NET) dla wszystkich innych identyfikatorów wzorców.
/// <summary>
/// Returns the object that supports the specified pattern.
/// </summary>
/// <param name="patternId">ID of the pattern.</param>
/// <returns>Object that implements IInvokeProvider.</returns>
/// <remarks>
/// In this case, the ISelectionProvider interface is implemented in another provider-defined class,
/// ListPattern. However, it could be implemented in the base provider class, in which case the
/// method would simply return "this".
/// </remarks>
object IRawElementProviderSimple.GetPatternProvider(int patternId)
{
if (patternId == SelectionPatternIdentifiers.Pattern.Id)
{
return new ListPattern(myItems, SelectedIndex);
}
else
{
return null;
}
}
''' <summary>
''' Returns the object that supports the specified pattern.
''' </summary>
''' <param name="patternId">ID of the pattern.</param>
''' <returns>Object that implements IInvokeProvider.</returns>
''' <remarks>
''' In this case, the ISelectionProvider interface is implemented in another provider-defined class,
''' ListPattern. However, it could be implemented in the base provider class, in which case the
''' method would simply return "this".
''' </remarks>
Function GetPatternProvider(ByVal patternId As Integer) As Object _
Implements IRawElementProviderSimple.GetPatternProvider
If patternId = SelectionPatternIdentifiers.Pattern.Id Then
Return New ListPattern(myItems, SelectedIndex)
Else
Return Nothing
End If
End Function 'IRawElementProviderSimple.GetPatternProvider