共用方式為


TextPatternRange.ExpandToEnclosingUnit(TextUnit) 方法

定義

將文字範圍擴展至指定的 TextUnit

public:
 void ExpandToEnclosingUnit(System::Windows::Automation::Text::TextUnit unit);
public void ExpandToEnclosingUnit (System.Windows.Automation.Text.TextUnit unit);
member this.ExpandToEnclosingUnit : System.Windows.Automation.Text.TextUnit -> unit
Public Sub ExpandToEnclosingUnit (unit As TextUnit)

參數

unit
TextUnit

文字單元。

範例

 private void ExpandSelection(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();
    // Expand selection to include entire document
    currentSelection[0].ExpandToEnclosingUnit(TextUnit.Document);
}
Private Sub ExpandSelection(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()
    currentSelection(0).ExpandToEnclosingUnit(TextUnit.Document)
End Sub

備註

如果範圍已經是指定單位的確切數量,則會維持不變。

為了讓 ExpandToEnclosingUnit 方法順利執行,會在幕後執行一連串動作。

  1. 文字範圍已正規化;也就是說,文字範圍會折疊為端點上的 Start 變質範圍,使 End 端點變得不多。 在文字範圍跨越 unit 界限的情況下,必須移除模棱兩可的步驟;例如,“{The U}RL https://www.microsoft.com/ 內嵌在文字中”,其中 “{” 和 “}” 是文字範圍端點。

  2. 結果產生的範圍會在 DocumentRange 中向後移至所要求 unit 界限的開頭。

  3. 範圍會在 DocumentRange 中依所要求的 unit 界限數目向前或向後移動。

  4. 範圍會接著依一個要求的 End 界限移動 unit 端點,從變質範圍狀態展開。

Move & ExpandToEnclosingUnit
如何針對 Move() 和 ExpandToEnclosingUnit() 調整文字範圍的範例

注意

這些步驟是必要的,因為螢幕助讀程式通常會在插入點或任何虛擬游標位置讀出完整的單字、句子或整個段落。

ExpandToEnclosingUnit 會同時遵守隱藏和可見的文字。 使用者介面自動化 客戶端可以檢查IsHiddenAttribute文字可見性。

ExpandToEnclosingUnit如果控件不支援指定的 TextUnit ,則會延遲至下一個最大TextUnit支援。

以下列出從最小單位到最大的順序。

適用於

另請參閱