FontVariation
Вариант общего шрифта: оси, синтетическое начертание, интервалы и цветовая палитра.
FontVariation ссылается на BaseFont и задаёт отдельные настройки начертания. Он не клонирует файл шрифта и не является Entity. Несколько вариантов могут использовать один FontFile; изменение общего BaseFont способно затронуть все варианты. Задавайте базовый ресурс явно для воспроизводимого экспорта. Если BaseFont не назначен, при использовании ищется шрифт темы/fallback; GetBaseFont при этом всё ещё может вернуть null. Не создавайте циклические цепочки BaseFont.
VariationOpentype задаёт оси variable font, OpentypeFeatures — функции shaping, например лигатуры. Это разные таблицы. Сначала получите доступные оси и их диапазоны через BaseFont.GetSupportedVariationList. Для веса используйте числовой ключ, полученный выражением TextServerManager.GetPrimaryInterface().NameToTag("wght"). В 1.0.0 строка "wght" может сохраниться в Dictionary, но при подборе кэша не отличить вариант от обычного начертания. Числовой тег или поддержанное каноническое имя устраняют неоднозначность. Не добавляйте ось статическому шрифту в ожидании настоящего нового начертания.
VariationOpentype и OpentypeFeatures копируют плоскую Dictionary и при назначении, и при чтении. Изменение полученной таблицы не меняет ресурс: назначьте её обратно. Это отличается от низкоуровневых FontFile.GetVariationCoordinates и GetOpentypeFeatureOverrides, возвращающих общую таблицу. Изменённые настройки FontVariation сбрасывают его кэши и отправляют Changed; повтор того же значения обычно не отправляет сигнал. Прямые изменения кэша FontFile Changed не отправляют.
VariationEmbolden и VariationTransform синтезируют форму контура; они не заменяют нарисованный дизайнером bold/italic. SpacingTop/Bottom/Space/Glyph — дополнительные пиксели, BaselineOffset — доля высоты шрифта. Ни одно из этих полей не задаёт font_size Control. Проверяйте переносы, clipping и высоту строк после изменений.
PaletteIndex и PaletteCustomColors работают для поддержанных цветных палитр конкретного шрифта и backend. Индекс 0 — первая палитра, прозрачный Color(0,0,0,0) в массиве оставляет соответствующий исходный цвет. Массив цветов в C# копируется; назначьте изменения обратно. Настройки палитры не окрашивают обычный монохромный шрифт и не доказывают поддержку color emoji.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
FontVariationКонструктор
public FontVariation();Создаёт вариант без явно назначенного BaseFont: оси/функции пустые, интервалы и утолщение 0, матрица Identity, палитра 0. Для предсказуемого результата задайте BaseFont.
Свойства13
BaseFontСвойство
public Font BaseFont { get; set; }Общая ссылка базового Font, не копия файла. null использует поиск по теме/fallback при рисовании, но getter не обязан возвращать найденный шрифт. Изменение базы инвалидирует вариант; не создавайте циклы.
BaselineOffsetСвойство
public float BaselineOffset { get; set; }Дополнительное смещение базовой линии как доля высоты шрифта, по умолчанию 0. Не пиксели; после изменения проверьте clipping и выравнивание.
OpentypeFeaturesСвойство
public Reckfell.Collections.Dictionary OpentypeFeatures { get; set; }Функции shaping, например liga/kern, с целыми значениями; не координаты осей. Setter/getter копируют Dictionary. Наличие тега не подтверждает поддержку файлом; после изменения копии назначьте её обратно.
PaletteCustomColorsСвойство
public Color[] PaletteCustomColors { get; set; }Цвета для замены элементов палитры. Color(0,0,0,0) оставляет исходный элемент. C# копирует вход и результат getter; назначьте изменённый массив обратно. Нужен поддержанный цветной шрифт.
PaletteIndexСвойство
public long PaletteIndex { get; set; }Индекс поддержанной цветной палитры, начиная с 0. Сверяйте с GetPaletteCount конкретного шрифта/backend. Хранение значения не подтверждает визуальную поддержку.
SpacingBottomСвойство
public int SpacingBottom { get; set; }Дополнительный интервал под строкой в пикселях, по умолчанию 0. Не масштаб всего шрифта.
SpacingGlyphСвойство
public int SpacingGlyph { get; set; }Дополнительный интервал между графическими глифами в пикселях, по умолчанию 0. Не масштаб всего шрифта.
SpacingSpaceСвойство
public int SpacingSpace { get; set; }Дополнительный интервал к ширине пробела в пикселях, по умолчанию 0. Не масштаб всего шрифта.
SpacingTopСвойство
public int SpacingTop { get; set; }Дополнительный интервал над строкой в пикселях, по умолчанию 0. Не масштаб всего шрифта.
VariationEmboldenСвойство
public float VariationEmbolden { get; set; }Сила синтетического утолщения, 0 без изменения. Положительные значения утолщают контур, отрицательные утоньшают; это не настоящий вес начертания.
VariationFaceIndexСвойство
public int VariationFaceIndex { get; set; }Индекс начертания внутри коллекции, по умолчанию 0. Выбирайте существующее начертание; setter хранит значение, но сам не доказывает его наличие в файле. Не индекс оси или RID-кэша.
VariationOpentypeСвойство
public Reckfell.Collections.Dictionary VariationOpentype { get; set; }Координаты осей variable font. Используйте числовые теги NameToTag и диапазоны GetSupportedVariationList: сырая строка "wght" в 1.0.0 может не изменить выбранный кэш. Setter/getter копируют таблицу; изменённую копию назначайте обратно. Это не liga/kern.
VariationTransformСвойство
public Transform2D VariationTransform { get; set; }Матрица преобразования контура, по умолчанию Identity. Подходит для синтетического наклона/поворота; не Transform Control и не замена качественного italic файла.
Методы19
GetBaseFontFont
public Font GetBaseFont();Общая ссылка базового Font, не копия файла. null использует поиск по теме/fallback при рисовании, но getter не обязан возвращать найденный шрифт. Изменение базы инвалидирует вариант; не создавайте циклы.
FontОбщая явно назначенная ссылка Font либо null; не копия.
GetBaselineOffsetfloat
public float GetBaselineOffset();Дополнительное смещение базовой линии как доля высоты шрифта, по умолчанию 0. Не пиксели; после изменения проверьте clipping и выравнивание.
floatТекущее сохранённое значение; не проверка визуального результата.
GetPaletteCustomColorsColor[]
public Color[] GetPaletteCustomColors();Цвета для замены элементов палитры. Color(0,0,0,0) оставляет исходный элемент. C# копирует вход и результат getter; назначьте изменённый массив обратно. Нужен поддержанный цветной шрифт.
Color[]Новый Color[]; изменение результата само не меняет ресурс.
GetPaletteIndexlong
public long GetPaletteIndex();Индекс поддержанной цветной палитры, начиная с 0. Сверяйте с GetPaletteCount конкретного шрифта/backend. Хранение значения не подтверждает визуальную поддержку.
longТекущее сохранённое значение; не проверка визуального результата.
GetVariationEmboldenfloat
public float GetVariationEmbolden();Сила синтетического утолщения, 0 без изменения. Положительные значения утолщают контур, отрицательные утоньшают; это не настоящий вес начертания.
floatТекущее сохранённое значение; не проверка визуального результата.
GetVariationFaceIndexint
public int GetVariationFaceIndex();Индекс начертания внутри коллекции, по умолчанию 0. Выбирайте существующее начертание; setter хранит значение, но сам не доказывает его наличие в файле. Не индекс оси или RID-кэша.
intТекущее сохранённое значение; не проверка визуального результата.
GetVariationOpentypeReckfell.Collections.Dictionary
public Reckfell.Collections.Dictionary GetVariationOpentype();Координаты осей variable font. Используйте числовые теги NameToTag и диапазоны GetSupportedVariationList: сырая строка "wght" в 1.0.0 может не изменить выбранный кэш. Setter/getter копируют таблицу; изменённую копию назначайте обратно. Это не liga/kern.
Reckfell.Collections.DictionaryНовая плоская Dictionary координат; изменённую таблицу назначьте обратно.
GetVariationTransformTransform2D
public Transform2D GetVariationTransform();Матрица преобразования контура, по умолчанию Identity. Подходит для синтетического наклона/поворота; не Transform Control и не замена качественного italic файла.
Transform2DТекущее сохранённое значение; не проверка визуального результата.
SetBaseFontvoid
public void SetBaseFont(Font font);Общая ссылка базового Font, не копия файла. null использует поиск по теме/fallback при рисовании, но getter не обязан возвращать найденный шрифт. Изменение базы инвалидирует вариант; не создавайте циклы. Изменённое значение отправляет Changed; то же значение не отправляет.
| Имя | Тип | По умолчанию |
|---|---|---|
font | Font | — |
fontОбщий Font либо null для выбора темы/fallback; не создавайте циклы BaseFont.
SetBaselineOffsetvoid
public void SetBaselineOffset(float baselineOffset);Дополнительное смещение базовой линии как доля высоты шрифта, по умолчанию 0. Не пиксели; после изменения проверьте clipping и выравнивание. Изменённое значение отправляет Changed; то же значение не отправляет.
| Имя | Тип | По умолчанию |
|---|---|---|
baselineOffset | float | — |
baselineOffsetКонечная доля высоты шрифта, 0 без дополнительного смещения.
SetOpentypeFeaturesvoid
public void SetOpentypeFeatures(Reckfell.Collections.Dictionary features);Функции shaping, например liga/kern, с целыми значениями; не координаты осей. Setter/getter копируют Dictionary. Наличие тега не подтверждает поддержку файлом; после изменения копии назначьте её обратно. Изменённое значение отправляет Changed; то же значение не отправляет.
| Имя | Тип | По умолчанию |
|---|---|---|
features | Reckfell.Collections.Dictionary | — |
featuresПлоская Dictionary функция OpenType → целое значение. Setter копирует её.
SetPaletteCustomColors2 перегрузки
public void SetPaletteCustomColors(Color[] colors);Цвета для замены элементов палитры. Color(0,0,0,0) оставляет исходный элемент. C# копирует вход и результат getter; назначьте изменённый массив обратно. Нужен поддержанный цветной шрифт. Изменённое значение отправляет Changed; то же значение не отправляет.
| Имя | Тип | По умолчанию |
|---|---|---|
colors | Color[] | — |
colorsМассив цветов по индексам палитры; прозрачный элемент оставляет исходный цвет. Вход копируется.
public void SetPaletteCustomColors(ReadOnlySpan<Color> colors);Цвета для замены элементов палитры. Color(0,0,0,0) оставляет исходный элемент. C# копирует вход и результат getter; назначьте изменённый массив обратно. Нужен поддержанный цветной шрифт. Изменённое значение отправляет Changed; то же значение не отправляет.
| Имя | Тип | По умолчанию |
|---|---|---|
colors | ReadOnlySpan<Color> | — |
colorsМассив цветов по индексам палитры; прозрачный элемент оставляет исходный цвет. Вход копируется.
SetPaletteIndexvoid
public void SetPaletteIndex(long paletteIndex);Индекс поддержанной цветной палитры, начиная с 0. Сверяйте с GetPaletteCount конкретного шрифта/backend. Хранение значения не подтверждает визуальную поддержку. Изменённое значение отправляет Changed; то же значение не отправляет.
| Имя | Тип | По умолчанию |
|---|---|---|
paletteIndex | long | — |
paletteIndexНеотрицательный индекс существующей палитры шрифта; 0 — первая.
SetSpacingvoid
public void SetSpacing(TextServer.SpacingType spacing, int value);Задаёт дополнительные пиксели для Glyph, Space, Top или Bottom. Не процент font_size и не парный кернинг. Изменение инвалидирует кэш варианта и отправляет Changed.
| Имя | Тип | По умолчанию |
|---|---|---|
spacing | TextServer.SpacingType | — |
value | int | — |
spacingGlyph, Space, Top или Bottom из TextServer.SpacingType.
valueДополнительное целое число пикселей; отрицательные значения могут вызвать наложение.
SetVariationEmboldenvoid
public void SetVariationEmbolden(float strength);Сила синтетического утолщения, 0 без изменения. Положительные значения утолщают контур, отрицательные утоньшают; это не настоящий вес начертания. Изменённое значение отправляет Changed; то же значение не отправляет.
| Имя | Тип | По умолчанию |
|---|---|---|
strength | float | — |
strengthКонечная сила синтетического утолщения; 0 без изменения.
SetVariationFaceIndexvoid
public void SetVariationFaceIndex(int faceIndex);Индекс начертания внутри коллекции, по умолчанию 0. Выбирайте существующее начертание; setter хранит значение, но сам не доказывает его наличие в файле. Не индекс оси или RID-кэша. Изменённое значение отправляет Changed; то же значение не отправляет.
| Имя | Тип | По умолчанию |
|---|---|---|
faceIndex | int | — |
faceIndexИндекс существующего начертания коллекции; обычно 0. Не передавайте отрицательные/несуществующие индексы.
SetVariationOpentypevoid
public void SetVariationOpentype(Reckfell.Collections.Dictionary coords);Координаты осей variable font. Используйте числовые теги NameToTag и диапазоны GetSupportedVariationList: сырая строка "wght" в 1.0.0 может не изменить выбранный кэш. Setter/getter копируют таблицу; изменённую копию назначайте обратно. Это не liga/kern. Изменённое значение отправляет Changed; то же значение не отправляет.
| Имя | Тип | По умолчанию |
|---|---|---|
coords | Reckfell.Collections.Dictionary | — |
coordsПлоская Dictionary числовой тег оси → число; получайте теги через NameToTag, диапазоны — из файла.
SetVariationTransformvoid
public void SetVariationTransform(Transform2D transform);Матрица преобразования контура, по умолчанию Identity. Подходит для синтетического наклона/поворота; не Transform Control и не замена качественного italic файла. Изменённое значение отправляет Changed; то же значение не отправляет.
| Имя | Тип | По умолчанию |
|---|---|---|
transform | Transform2D | — |
transformКонечная матрица контура; Identity без изменения.