次の方法で共有


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/ is embedded in text" ("{" と "}" はテキスト範囲のエンドポイント) です。

  2. 結果として得られる範囲は、 DocumentRange 内で、要求された unit 境界の先頭に向かって後方に移動されます。

  3. この範囲は、 DocumentRange 内で、 unit 境界の要求された数だけ、前方または後方に移動されます。

  4. その後、この範囲は、要求された 1 つの End 境界の分、 unit エンドポイントを移動することによって、低次元テキスト範囲の状態から展開されます。

Move & ExpandToEnclosingUnit Range
テキスト範囲を Move() と ExpandToEnclosingUnit() に対して調整する方法の例

注意

これらの手順は、スクリーン リーダーが挿入ポイントまたは仮想カーソル位置で完全な単語、文、または段落全体を読み上げるのが一般的であるため、必要です。

ExpandToEnclosingUnit は、非表示のテキストと表示されるテキストの両方を尊重します。 UI オートメーション クライアントは、 をチェックしてIsHiddenAttributeテキストを表示できます。

ExpandToEnclosingUnitは、指定された がコントロールでサポートされていない場合TextUnit、サポートされている次の最大TextUnitに遅延します。

最小単位から最大までの順序を以下に示します。

適用対象

こちらもご覧ください