Aracılığıyla paylaş


TextPointer.GetInsertionPosition(LogicalDirection) Yöntem

Tanım

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

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>bgö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 bhemen ö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 directioniç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.

Şunlara uygulanır

Ayrıca bkz.