CTLineBoundsOptions Enum


The kind of bounds computation that we want to perform on a CTLine.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

public enum CTLineBoundsOptions
type CTLineBoundsOptions = 


ExcludeTypographicLeading 1

Use this option to exclude the typographic leading from the bounds computation (the space between baselines of different lines of text).

ExcludeTypographicShifts 2

Does not take into account kerning or leading information when computing bounds for

IncludeLanguageExtents 32
UseGlyphPathBounds 8

The bounds of every glyph. These are typographically not very interesting as they do not take into account the finer details of typography, this returns the bounding box for the actual text rendered.

UseHangingPunctuation 4

Hanging Punctuation is a way of typesetting punctuation marks and bullet points, most commonly quotation marks and hyphens, so that they do not disrupt the "flow" of a body of text or "break" the margin of alignment. It is so called because the punctuation appears to ‘hang’ in the margin of the text, and is not incorporated into the block or column of text. It is commonly used when text is fully justified.

UseOpticalBounds 16

This uses the optical bounds. Some fonts include information about the optical perception of the font, and it might not align perfectly with the bounding box of the text.


These options can be combined. In the graphic below, you can see the different bounds that are computed based on this flag.

The following image shows the effect that the options have on measuring text.

Applies to