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

Belirtilen yöndeki en yakın ekleme konumuna A TextPointer .

Örnekler

Bu örnekte, belirtilen GetInsertionPosition bir değerin TextElement 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çerikte bir şapka işaretinin konumlandırılabileceği herhangi bir yerdir. Ekleme konumu olmayan geçerli bir TextPointer konumuna örnek olarak, iki bitişik Paragraph etiketi (önceki paragrafın kapanış etiketi ile sonraki paragrafın açılış etiketi arasındaki) arasındaki konum verilebilir.

TextPointer zaten geçerli bir ekleme konumuna işaret eder, ancak boş olmayan bir biçimlendirme dizisinin kapanış etiketi doğrudan verilen yöndeki bu konumu izlerseTextPointer, bu yöntem tarafından döndürülen, biçimlendirme dizisinin kapanmasının hemen ardından ekleme konumuna işaret etmek üzere ayarlanır. Örneğin, işaretleme sırasını <Bold>a</Bold>bgöz önünde bulundurun. harfler ab ile arasında iki ekleme konumu olduğunu unutmayın: biri kapanış Bold etiketinden önce, biri de kapanış Bold etiketini doğrudan takip eder. harfin hemen ardından ve kapanış etiketinden önce konumuna çağrılırsa GetInsertionPositionTextPointer, aBolddöndürülen direction harfin hemen öncesindeForward, kapanış TextPointer etiketinden sonraki konuma işaret etmek için ayarlanır.bBold 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 bir kesinlik aracı sağlamaya yöneliktir.

Bu yöntem, yapısal etiketler dizisi 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, yön parametresi aşağıdaki paragrafın başındaki (belirterek LogicalDirection.Forward) veya önceki paragrafın sonundaki en yakın ekleme noktasını seçmek için kullanılabilir (belirterek LogicalDirection.Backward).

İşaretçi zaten ekleme konumundaysa ve belirtilen directioniçinde bitişik biçimlendirme etiketi yoksa, döndürülen TextPointer öğesini çağıran TextPointerile aynı konuma işaret etti.

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.