TextPointer.GetInsertionPosition(LogicalDirection) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen mantıksal yöndeki en yakın ekleme konumuna bir TextPointer döndürür.
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
Parametreler
- direction
- LogicalDirection
LogicalDirection En yakın ekleme konumunun arandığı mantıksal yönü belirten değerlerden biri.
Döndürülenler
TextPointer Belirtilen yöndeki en yakın ekleme konumuna A.
Örnekler
Bu örnekte, belirtilen TextElement bir değerin GetInsertionPosition yazdırılabilir içerikte boş olup olmadığını denetlemek için yönteminin nasıl kullanılacağı gösterilmektedir.
// 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.
Açıklamalar
Ekleme konumu, ilişkili içerik için herhangi bir semantik kuralı bozmadan yeni içeriğin eklenebileceği bir konumdur. Uygulamada ekleme konumu, içeriğin herhangi bir yerinde şapka işaretinin konumlandırıldığı yerdir. Ekleme konumu olmayan geçerli TextPointer bir konum örneği, bitişik Paragraph iki etiket (önceki paragrafın kapanış etiketi ile sonraki paragrafın açılış etiketi arasındaki) arasındaki konumdur.
TextPointer zaten geçerli bir ekleme konumunu gösteriyorsa, ancak boş olmayan bir biçimlendirme dizisinin kapanış etiketi doğrudan verilen yöndeki bu konumu takip ederseTextPointer, bu yöntem tarafından döndürülen, biçimlendirme dizisi kapatıldıktan hemen sonra ekleme konumuna işaret etmek üzere ayarlanır. Örneğin, işaretleme sırasını <Bold>a</Bold>b
göz önünde bulundurun. harfler a
b
ile arasında iki ekleme konumu olduğunu unutmayın: biri kapanış Bold
etiketinden önce, diğeri de kapanış etiketinin hemen ardından Bold
. harfinden hemen sonra ve kapanış Bold
etiketinden önce konumuna çağrılırsa TextPointer GetInsertionPosition ve öğesiyle Forwarddirection
birlikte döndürülürse, döndürülenTextPointer, harfin b
hemen öncesinde, kapanış Bold
etiketinden sonraki konuma işaret etmek üzere ayarlanır.a
Ters mantıksal yönde çalışırken biçimlendirme etiketlerini açmak için benzer bir ayarlama yapılır. Bu yöntem, benzer durumlarda ekleme konumları arasında kesinleştirme aracı sağlamak için tasarlanmıştır.
Bu yöntem, bir dizi yapısal etiket söz konusu olduğunda ekleme noktaları hakkında seçici olmak için de kullanılabilir. Örneğin, paragraf etiketlerini kapatma ve açma arasında bir konumdayken, direction parametresi bir sonraki paragrafın başında (belirterek LogicalDirection.Forward) veya önceki paragrafın sonundaki (belirterek LogicalDirection.Backward) en yakın ekleme noktasını seçmek için kullanılabilir.
İşaretçi zaten ekleme konumundaysa ve belirtilen direction
içinde bitişik biçimlendirme etiketleri yoksa, döndürülen TextPointer öğesini çağıran TextPointerile aynı konuma işaret etmektedir.
bir tarafından işaret edilen konuma göre geçerli bir TextPointerekleme konumu bulunmaması mümkündür. Başvurulan içerik, boş bir tablo veya listede olduğu gibi yapısal olarak eksikse bu durum oluşabilir. Bu gibi durumlarda, bu yöntem yalnızca bu yöntemin çağrıldığı konumla TextPointer aynı konuma döndürürTextPointer. Bu yöntem her zaman geçerli TextPointerbir döndürür.