TextPointer.CompareTo Method (TextPointer)


Performs an ordinal comparison between the positions specified by the current TextPointer and a second specified TextPointer.

Namespace:   System.Windows.Documents
Assembly:  PresentationFramework (in PresentationFramework.dll)

public int CompareTo(
	TextPointer position


Type: System.Windows.Documents.TextPointer

A TextPointer that specifies a position to compare to the current position.

Return Value

Type: System.Int32

–1 if the current TextPointer precedes position; 0 if the locations are the same; +1 if the current TextPointer follows position.

Exception Condition

position specifies a position outside of the text container associated with the current position.

A value of –1 indicates that the position specified by the current TextPointer precedes the position specified by position. A value of 0 indicates that the indicated positions are equal. A value of positive +1 indicates that the position specified by the current TextPointer follows the position specified by position.

The following example demonstrates a use for this method. In the example, the CompareTo method is used in conjunction with the GetInsertionPosition method to test whether a specified TextElement is empty.

// 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.

.NET Framework
Available since 3.0
Available since 4.0
Windows Phone Silverlight
Available since 7.1
Return to top