C# | Visual Basic | Visual C++ |
public TextAnchor CreateAnchor( int offset )
Public Function CreateAnchor ( _ offset As Integer _ ) As TextAnchor
public: TextAnchor^ CreateAnchor( int offset )
- offset (Int32)
Use the Offset property to get the offset from a text anchor. Use the CreateAnchor(Int32) method to create an anchor from an offset.
The document will automatically update all text anchors; and because it uses weak references to do so, the garbage collector can simply collect the anchor object when you don't need it anymore.
Moreover, the document is able to efficiently update a large number of anchors without having to look at each anchor object individually. Updating the offsets of all anchors usually only takes time logarithmic to the number of anchors. Retrieving the Offset property also runs in O(lg N).
When a piece of text containing an anchor is removed, then that anchor will be deleted. First, the IsDeleted property is set to true on all deleted anchors, then the Deleted events are raised. You cannot retrieve the offset from an anchor that has been deleted.
This deletion behavior might be useful when using anchors for building a bookmark feature, but in other cases you want to still be able to use the anchor. For those cases, set SurviveDeletion = true.
Anchor movement is ambiguous if text is inserted exactly at the anchor's location. Does the anchor stay before the inserted text, or does it move after it? The property MovementType will be used to determine which of these two options the anchor will choose. The default value is Default.If you want to track a segment, you can use the AnchorSegment class which implements ISegment using two text anchors.
Copy | |
---|---|
TextAnchor anchor = document.CreateAnchor(offset);
ChangeMyDocument();
int newOffset = anchor.Offset; |
Assembly: ICSharpCode.AvalonEdit (Module: ICSharpCode.AvalonEdit.dll) Version: 5.0.0.4238