Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Feljegyzés
Ez a dokumentáció .NET-keretrendszer fejlesztőknek készült, akik a névtérben System.Windows.Automation meghatározott felügyelt UI-automatizálás osztályokat szeretnék használni. A UI-automatizálás kapcsolatos legfrissebb információkért lásd: Windows Automation API: UI-automatizálás.
Ez a témakör bemutatja, hogyan implementálhat egy vagy több vezérlőmintát egy UI-automatizálás szolgáltatón, hogy az ügyfélalkalmazások manipulálhassák a vezérlőket, és adatokat kérjenek tőlük.
Támogatási szabályozási minták
Implementálja a megfelelő interfészeket az elem által támogatott szabályozási mintákhoz, például IInvokeProvider a InvokePattern.
Adja vissza azt az objektumot, amely tartalmazza az egyes vezérlőfelületek implementálását a IRawElementProviderSimple.GetPatternProvider
1. példa
Az alábbi példa egy egyéni listaelem implementálását ISelectionProvider mutatja be. Három tulajdonságot ad vissza, és lekéri az aktuálisan kijelölt elemet.
#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
2. példa
Az alábbi példa egy olyan implementációt GetPatternProvider mutat be, amely az osztály implementálását ISelectionProvideradja vissza. A legtöbb listamező-vezérlő más mintákat is támogatna, de ebben a példában a rendszer az összes többi mintaazonosítóhoz null hivatkozást ad vissza (Nothing a Microsoft Visual Basic .NET-ben).
/// <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