TextPointer.GetInsertionPosition(LogicalDirection) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengembalikan TextPointer ke posisi penyisipan terdekat dalam arah logika yang ditentukan.
public:
System::Windows::Documents::TextPointer ^ GetInsertionPosition(System::Windows::Documents::LogicalDirection direction);
public System.Windows.Documents.TextPointer GetInsertionPosition(System.Windows.Documents.LogicalDirection direction);
member this.GetInsertionPosition : System.Windows.Documents.LogicalDirection -> System.Windows.Documents.TextPointer
Public Function GetInsertionPosition (direction As LogicalDirection) As TextPointer
Parameter
- direction
- LogicalDirection
Salah LogicalDirection satu nilai yang menentukan arah logis untuk mencari posisi penyisipan terdekat.
Mengembalikan
TextPointer ke posisi penyisipan terdekat dalam arah yang ditentukan.
Contoh
Contoh ini menunjukkan cara menggunakan GetInsertionPosition metode untuk memeriksa apakah konten yang ditentukan TextElement kosong dari konten yang dapat dicetak.
// Tests to see if the specified TextElement is empty (has no printatble content).
bool IsElementEmpty(TextElement element)
{
// Find starting and ending insertion positions in the element.
// Inward-facing directions are used to make sure that insertion position
// will be found correctly in case when the element may contain inline
// formatting elements (such as a Span or Run that contains Bold or Italic elements).
TextPointer start = element.ContentStart.GetInsertionPosition(LogicalDirection.Forward);
TextPointer end = element.ContentEnd.GetInsertionPosition(LogicalDirection.Backward);
// The element has no printable content if its first and last insertion positions are equal.
return start.CompareTo(end) == 0;
} // End IsEmptyElement method.
' Tests to see if the specified TextElement is empty (has no printatble content).
Private Function IsElementEmpty(ByVal element As TextElement) As Boolean
' Find starting and ending insertion positions in the element.
' Inward-facing directions are used to make sure that insertion position
' will be found correctly in case when the element may contain inline
' formatting elements (such as a Span or Run that contains Bold or Italic elements).
Dim start As TextPointer = element.ContentStart.GetInsertionPosition(LogicalDirection.Forward)
Dim [end] As TextPointer = element.ContentEnd.GetInsertionPosition(LogicalDirection.Backward)
' The element has no printable content if its first and last insertion positions are equal.
Return start.CompareTo([end]) = 0
End Function ' End IsEmptyElement method.
Keterangan
Posisi penyisipan adalah posisi di mana konten baru dapat ditambahkan tanpa melanggar aturan semantik apa pun untuk konten terkait. Dalam praktiknya, posisi penyisipan berada di mana saja dalam konten di mana tanda sisipan dapat diposisikan. Contoh posisi valid TextPointer yang bukan posisi penyisipan adalah posisi antara dua tag yang berdekatan Paragraph (yaitu, antara tag penutup paragraf sebelumnya dan tag pembuka paragraf berikutnya).
TextPointer Jika sudah menunjuk ke posisi penyisipan yang valid, tetapi tag penutup untuk urutan pemformatan yang tidak kosong langsung mengikuti posisi tersebut ke arah yang diberikan, maka TextPointer yang dikembalikan oleh metode ini disesuaikan untuk menunjuk ke posisi penyisipan tepat setelah penutupan urutan pemformatan. Misalnya, pertimbangkan urutan <Bold>a</Bold>bmarkup . Perhatikan bahwa ada dua posisi penyisipan antara huruf a dan b - satu yang mendahului tag penutup Bold , dan satu langsung mengikuti tag penutup Bold . Jika GetInsertionPosition dipanggil ke TextPointer posisi langsung setelah huruf a dan sebelum tag penutup Bold , dan dengan direction dari Forward, yang dikembalikan TextPointer disesuaikan untuk menunjuk ke posisi tepat sebelum huruf b, setelah tag penutup Bold . Penyesuaian serupa dibuat untuk membuka tag pemformatan saat bekerja ke arah logis yang berlawanan. Metode ini dimaksudkan untuk memberikan sarana disambiguasi antara posisi penyisipan dalam kasus serupa.
Metode ini juga dapat digunakan untuk selektif tentang titik penyisipan ketika urutan tag struktural terlibat. Misalnya, ketika pada posisi antara menutup dan membuka tag paragraf, parameter arah dapat digunakan untuk memilih titik penyisipan terdekat di awal paragraf berikut (dengan menentukan LogicalDirection.Forward) atau di akhir paragraf sebelumnya (dengan menentukan LogicalDirection.Backward).
Jika penunjuk sudah berada di posisi penyisipan, dan tidak ada tag pemformatan yang berdekatan dalam yang ditentukan direction, poin yang dikembalikan TextPointer ke posisi yang sama dengan panggilan TextPointer.
Ada kemungkinan bahwa tidak ada posisi penyisipan yang valid relatif terhadap posisi yang diarahkan oleh TextPointer. Ini dapat terjadi jika konten yang dirujuk secara struktural tidak lengkap, seperti dalam tabel atau daftar kosong. Dalam kasus seperti itu, metode ini hanya mengembalikan TextPointer ke posisi yang sama dengan TextPointer tempat metode ini dipanggil. Metode ini selalu mengembalikan TextPointer.