TextPatternRange.MoveEndpointByRange Metod

Definition

Flyttar en slutpunkt i ett textintervall till den angivna slutpunkten för ett andra textintervall.

public:
 void MoveEndpointByRange(System::Windows::Automation::Text::TextPatternRangeEndpoint endpoint, System::Windows::Automation::Text::TextPatternRange ^ targetRange, System::Windows::Automation::Text::TextPatternRangeEndpoint targetEndpoint);
public void MoveEndpointByRange(System.Windows.Automation.Text.TextPatternRangeEndpoint endpoint, System.Windows.Automation.Text.TextPatternRange targetRange, System.Windows.Automation.Text.TextPatternRangeEndpoint targetEndpoint);
member this.MoveEndpointByRange : System.Windows.Automation.Text.TextPatternRangeEndpoint * System.Windows.Automation.Text.TextPatternRange * System.Windows.Automation.Text.TextPatternRangeEndpoint -> unit
Public Sub MoveEndpointByRange (endpoint As TextPatternRangeEndpoint, targetRange As TextPatternRange, targetEndpoint As TextPatternRangeEndpoint)

Parametrar

endpoint
TextPatternRangeEndpoint

Slutpunkten som ska flyttas.

targetRange
TextPatternRange

Ett annat intervall från samma textprovider.

targetEndpoint
TextPatternRangeEndpoint

En slutpunkt på det andra intervallet.

Exempel

 private void MoveEndpointByRangeFromSelection(AutomationElement target)
{
    // Specify the control type we're looking for, in this case 'Document'
    PropertyCondition cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document);

    // target --> The root AutomationElement.
    AutomationElement textProvider = target.FindFirst(TreeScope.Descendants, cond);

    TextPattern textpatternPattern = textProvider.GetCurrentPattern(TextPattern.Pattern) as TextPattern;

    if (textpatternPattern == null)
    {
        Console.WriteLine("Root element does not contain a descendant that supports TextPattern.");
        return;
    }
    TextPatternRange[] currentSelection = textpatternPattern.GetSelection();
    TextPatternRange[] currentVisibleRanges = textpatternPattern.GetVisibleRanges();

    currentSelection[0].MoveEndpointByRange(
        TextPatternRangeEndpoint.Start,
        currentVisibleRanges[0], 
        TextPatternRangeEndpoint.Start);
}
Private Sub MoveEndpointByRangeFromSelection(ByVal target As AutomationElement)
    ' Specify the control type we're looking for, in this case 'Document'
    Dim cond As PropertyCondition = New PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document)

    ' target --> The root AutomationElement.
    Dim textProvider As AutomationElement = target.FindFirst(TreeScope.Descendants, cond)

    Dim textpatternPattern As TextPattern = CType(textProvider.GetCurrentPattern(TextPattern.Pattern), TextPattern)

    If (textpatternPattern Is Nothing) Then
        Console.WriteLine("Root element does not contain a descendant that supports TextPattern.")
        Return
    End If
    Dim currentSelection As TextPatternRange() = textpatternPattern.GetSelection()
    Dim currentVisibleRanges As TextPatternRange() = textpatternPattern.GetVisibleRanges()
    currentSelection(0).MoveEndpointByRange(TextPatternRangeEndpoint.Start, _
                                     currentVisibleRanges(0), _
                                     TextPatternRangeEndpoint.Start)
End Sub

Kommentarer

Om slutpunkten som flyttas korsar den andra slutpunkten i samma textintervall flyttas även den andra slutpunkten, vilket resulterar i ett degenererat intervall och säkerställer rätt ordning på slutpunkterna (dvs Start . är alltid mindre än eller lika med End).

Gäller för