TextSegment Class
A segment that can be put into a TextSegmentCollection<(Of <(<'T>)>)>.
Declaration Syntax
C#Visual BasicVisual C++
public class TextSegment : ISegment
Public Class TextSegment _
	Implements ISegment
public ref class TextSegment : ISegment
All MembersConstructorsMethodsProperties

Initializes a new instance of the TextSegment class

Contains(ISegment, Int32, Int32)
Gets whether segment fully contains the specified segment.
(Inherited from ISegmentExtensions.)
Contains(ISegment, ISegment)
Gets whether thisSegment fully contains the specified segment.
(Inherited from ISegmentExtensions.)
Gets/Sets the end offset of the segment.

Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Allows an Object to attempt to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection.
(Inherited from Object.)
Serves as a hash function for a particular type.
(Inherited from Object.)
Gets the Type of the current instance.
(Inherited from Object.)
Gets whether this segment is connected to a TextSegmentCollection and will automatically update its offsets.

Gets/Sets the length of the segment.

Creates a shallow copy of the current Object.
(Inherited from Object.)
This method gets called when the StartOffset/Length/EndOffset properties are set. It is not called when StartOffset/Length/EndOffset change due to document changes

Gets/Sets the start offset of the segment.

Returns a String that represents the current Object.
(Overrides Object.ToString()()()().)

A TextSegment can be stand-alone or part of a TextSegmentCollection<(Of <(<'T>)>)>. If the segment is stored inside a TextSegmentCollection, its Offset and Length will be updated by that collection.

When the document changes, the offsets of all text segments in the TextSegmentCollection will be adjusted accordingly. Start offsets move like AnchorMovementType.AfterInsertion, end offsets move like AnchorMovementType.BeforeInsertion (i.e. the segment will always stay as small as possible).

If a document change causes a segment to be deleted completely, it will be reduced to length 0, but segments are never automatically removed from the collection. Segments with length 0 will never expand due to document changes, and they move as AfterInsertion.

Thread-safety: a TextSegmentCollection that is connected to a TextDocument may only be used on that document's owner thread. A disconnected TextSegmentCollection is safe for concurrent reads, but concurrent access is not safe when there are writes. Keep in mind that reading the Offset properties of a text segment inside the collection is a read access on the collection; and setting an Offset property of a text segment is a write access on the collection.

Inheritance Hierarchy
See Also

Assembly: ICSharpCode.AvalonEdit (Module: ICSharpCode.AvalonEdit.dll) Version: