TextPatternRange.MoveEndpointByUnit 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
텍스트 범위의 한 엔드포인트을 문서 범위 내에서 지정된 TextUnit수만큼 이동합니다.
public:
int MoveEndpointByUnit(System::Windows::Automation::Text::TextPatternRangeEndpoint endpoint, System::Windows::Automation::Text::TextUnit unit, int count);
public int MoveEndpointByUnit (System.Windows.Automation.Text.TextPatternRangeEndpoint endpoint, System.Windows.Automation.Text.TextUnit unit, int count);
member this.MoveEndpointByUnit : System.Windows.Automation.Text.TextPatternRangeEndpoint * System.Windows.Automation.Text.TextUnit * int -> int
Public Function MoveEndpointByUnit (endpoint As TextPatternRangeEndpoint, unit As TextUnit, count As Integer) As Integer
매개 변수
- endpoint
- TextPatternRangeEndpoint
이동할 엔드포인트입니다.
- unit
- TextUnit
이동할 텍스트 단위입니다.
- count
- Int32
이동할 단위 수입니다. 양수를 사용하면 엔드포인트가 앞으로 이동합니다. 음수를 사용하면 뒤로 이동합니다. 0은 효과가 없습니다.
반환
실제로 이동한 단위 수이며, 엔드포인트을 이동하면서 문서의 시작이나 끝과 만나게 되면 요청된 수보다 작을 수 있습니다.
예제
private Int32 MoveEndpointByRangeFromSelection(AutomationElement target, Int32 units)
{
// 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 0;
}
TextPatternRange[] currentSelection = textpatternPattern.GetSelection();
return currentSelection[0].MoveEndpointByUnit(
TextPatternRangeEndpoint.Start, TextUnit.Paragraph, units);
}
Private Function MoveEndpointByRangeFromSelection(ByVal target As AutomationElement, ByVal units As Int32) As Int32
' 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 Nothing
End If
Dim currentSelection As TextPatternRange() = textpatternPattern.GetSelection()
' GetText(-1) retrieves all characters but can be inefficient
Return currentSelection(0).MoveEndpointByUnit(TextPatternRangeEndpoint.Start, TextUnit.Paragraph, units)
End Function
설명
텍스트 범위의 내용을 이동해야 하는 경우 Move 메서드가 성공적으로 실행되려면 백그라운드에서 일련의 단계를 거쳐야 합니다.
텍스트 범위가 정규화됩니다. 다시 말해서, 텍스트 범위가 Start 엔드포인트에서 중복 제거 범위로 축소되어 End 엔드포인트가 불필요해집니다. 이 단계는 텍스트 범위에 걸쳐 있는 경우 모호성을 제거 하는 데 필요한
unit
경계; 예를 들어 "{The U} RL https://www.microsoft.com/ 텍스트에 포함 된" 위치 "{0}" 및 "}"는 텍스트 범위 엔드포인트입니다.결과 범위가 DocumentRange 내에서 뒤쪽으로 옮겨져 요청된
unit
경계의 시작 부분으로 이동하게 됩니다.그런 다음, 요청된
unit
경계 하나만큼 End 엔드포인트를 이동하여 중복 제거 범위 상태이던 범위가 확장됩니다.
범위
Move() 및 ExpandToEnclosingUnit()에 따라 텍스트 범위가 조정되는 방법의 예
텍스트 컨테이너 및 포함된 개체(예: 하이퍼링크 또는 테이블 셀)의 텍스트 내용(또는 내부 텍스트)은 UI 자동화 트리의 컨트롤 뷰와 콘텐츠 뷰에서 지속적인 단일 텍스트 스트림으로 노출됩니다. 개체 경계는 무시됩니다. UI 자동화 클라이언트가 낭독, 해석 또는 분석의 목적으로 텍스트를 특정 방식으로 검색하는 경우 텍스트 내용이나 기타 포함된 개체가 있는 테이블과 같이 특수한 경우가 텍스트 범위에 있는지 확인해야 합니다. 이 호출 하 여 수행할 수 있습니다 GetChildren 가져오려고를 AutomationElement 포함 된 각 개체를 호출에 대 한 RangeFromChild 각 요소에 대 한 텍스트 범위를 얻으려면 모든 텍스트 내용이 검색 될 때까지 재귀적으로 이루어집니다.
포함된 개체가 있는 텍스트 스트림과 해당 범위의 예
MoveEndpointByUnit 단위는 다음 가장 큰 TextUnit 지원 되는 경우에는 지정 된 TextUnit 컨트롤에서 지원 되지 않습니다.
가장 크고 가장 작은 단위는 순서는 아래 나열 됩니다.
적용 대상
.NET