Bagikan melalui


TextPatternRange.ExpandToEnclosingUnit(TextUnit) Metode

Definisi

Memperluas rentang teks ke yang ditentukan 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)

Parameter

unit
TextUnit

Unit tekstual.

Contoh

 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

Keterangan

Jika rentang sudah merupakan jumlah yang tepat dari unit yang ditentukan, maka rentang tersebut tetap tidak berubah.

Agar ExpandToEnclosingUnit metode berhasil dijalankan, urutan tindakan dilakukan di belakang layar.

  1. Rentang teks dinormalisasi; artinya, rentang teks diciutkan ke rentang degenerasi di Start titik akhir, membuat End titik akhir berlebihan. Langkah ini diperlukan untuk menghapus ambiguitas dalam situasi di mana rentang teks mencakup unit batas; misalnya, "{U}RL https://www.microsoft.com/ disematkan dalam teks" di mana "{" dan "}" adalah titik akhir rentang teks.

  2. Rentang yang dihasilkan dipindahkan ke belakang di DocumentRange ke awal batas unit yang diminta.

  3. Rentang dipindahkan ke depan atau ke belakang di DocumentRange dengan jumlah batas unit yang diminta.

  4. Rentang kemudian diperluas dari status rentang yang merosot dengan memindahkan titik akhir End dengan satu batas unit yang diminta.

Penyesuaian rentang dengan Pindahkan & penyesuaian Rentang ExpandToEnclosingUnit
Contoh bagaimana rentang teks disesuaikan untuk Move() dan ExpandToEnclosingUnit()

Catatan

Langkah-langkah ini diperlukan karena umum bagi pembaca layar untuk membaca kata lengkap, kalimat, atau seluruh paragraf pada titik penyisipan atau posisi kursor virtual apa pun.

ExpandToEnclosingUnit menghormati teks tersembunyi dan terlihat. Klien Automation UI dapat memeriksa IsHiddenAttribute visibilitas teks.

ExpandToEnclosingUnit menunda ke terbesar TextUnit berikutnya yang didukung jika yang diberikan TextUnit tidak didukung oleh kontrol.

Pesanan, dari unit terkecil hingga terbesar, tercantum di bawah ini.

Berlaku untuk

Lihat juga