We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

IScrollMap Interface

Defines the mapping between character positions and scrollmap coordinates.

Namespace:  Microsoft.VisualStudio.Text.Editor
Assembly:  Microsoft.VisualStudio.Text.UI (in Microsoft.VisualStudio.Text.UI.dll)

public interface IScrollMap : IVerticalFractionMap

The IScrollMap type exposes the following members.

Public propertyAreElisionsExpandedDetermines whether the coordinate system used by this scroll map acts as if all elisions are expanded.
Public propertyEndGets the scrollmap coordinate of the end of the buffer.
Public propertyStartGets the scrollmap coordinate of the start of the buffer.
Public propertyTextViewGets the text view to which this fraction map applies. (Inherited from IVerticalFractionMap.)
Public propertyThumbSizeGets the size of the text visible in the view (in scrollmap coordinates).

Public methodGetBufferPositionAtCoordinateGets the buffer position that corresponds to a scrollmap coordinate.
Public methodGetBufferPositionAtFractionGets the buffer position that corresponds to a fraction of the vertical extent of the view, if it exists. (Inherited from IVerticalFractionMap.)
Public methodGetCoordinateAtBufferPositionGets the scrollmap coordinates of a buffer position.
Public methodGetFractionAtBufferPositionGets the fraction of the vertical extent of the view that corresponds to the specified buffer position. (Inherited from IVerticalFractionMap.)

Public eventMappingChangedOccurs when the mapping has changed between a character position and its vertical fraction. For example, the view may have re-rendered some lines, changing their font size. (Inherited from IVerticalFractionMap.)

This coordinate system is not the same as the one in which the scrollbar is rendered.

Valid text positions range between 0 and ITextView.TextSnapshot.Length. Corresponding scrollmap coordinates range between 0.0 and CoordinateOfBufferEnd.

Not every buffer position will have a distinct scrollmap coordinate. For example, every character on the same line of text will generally have the same scrollmap coordinate. Different scrollmap coordinates may map to the same buffer position. For example, scrollmap coordinates in the range [0.0, 1.0) will generally map to the first character of the buffer.