reckfellENGINE

Range

Общее числовое состояние ползунков, полос прокрутки и индикаторов.

На этой странице
class RangeReckfellSharpНаследует Control

Range хранит значение и правила его изменения. Для готового элемента интерфейса используйте подходящий производный класс, например HSlider или ProgressBar. Начальные настройки базового Range: MinValue = 0, MaxValue = 100, Value = 0, Step = 1, Page = 0; AllowGreater, AllowLesser, Rounded и ExpEdit выключены. Передавайте конечные числа: NaN не отклоняется как недопустимое значение.

При присваивании Value положительный Step округляет значение к сетке относительно MinValue, затем Rounded округляет до целого, затем применяются границы. Например, MinValue = 0.1 и Step = 0.2 дают сетку 0.1, 0.3, 0.5. Step = 0 отключает сетку, но не Rounded и не границы. Изменение Step, Rounded или AllowGreater/AllowLesser само по себе не пересчитывает текущее Value: для применения новых правил присвойте Value повторно.

Обычный верхний предел равен MaxValue − Page, нижний — MinValue. Page ограничен диапазоном от 0 до MaxValue − MinValue. Он обозначает размер страницы, а не шаг изменения. Если AllowGreater/AllowLesser включены, соответствующее ограничение Value снимается. Увеличение MinValue при необходимости поднимает MaxValue; MaxValue ниже MinValue не сохраняется.

Ratio — нормализованное положение между MinValue и MaxValue, а не между MinValue и MaxValue − Page. При границах 0/100 и Page = 20 наибольшее обычное Value равно 80, Ratio равно 0.8. Присваивание Ratio = 1 также остановится на Value = 80. Getter Ratio ограничен 0…1 даже при разрешённом выходе Value за границы; при равных границах возвращает 1. Для предсказуемой экспоненциальной шкалы ExpEdit используйте 0 < MinValue < MaxValue; при отрицательном минимуме применяется линейная шкала.

ValueChanged вызывается при изменении итогового значения через обычный setter у владельцев внутри дерева. Повторное присваивание с тем же результатом сигнал не вызывает. Changed сообщает об изменении MinValue, MaxValue, Step или Page; это не универсальный сигнал всех настроек. SetValueNoSignal обновляет значение и вызывает виртуальный _ValueChanged у владельцев внутри дерева, но не испускает ValueChanged. Не используйте этот метод как способ подавить всю логику подкласса.

Вызов a.Share(b) заменяет числовое состояние b общим состоянием a. Значение, границы, шаг, страница, экспоненциальный режим и разрешение выхода за пределы становятся общими; Rounded остаётся отдельным. Запись через один элемент видна другому, а округление выбирает элемент, через который выполнена запись. Share сразу уведомляет целевой b сигналами Changed и ValueChanged, даже если число совпало или b ещё вне дерева. Unshare сохраняет копию текущего состояния и отделяет элемент от группы.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

RangeКонструктор
# Range
C#
public Range();

Создаёт базовое числовое состояние: диапазон 0…100, Value = 0, Step = 1, Page = 0. Для визуального ползунка или индикатора используйте производный Control.

Свойства10

AllowGreaterСвойство
# AllowGreater
C#
public bool AllowGreater { get; set; }

Разрешает Value выше MaxValue − Page, false по умолчанию. Переключение не пересчитывает уже сохранённое значение и не испускает Changed. Getter Ratio всё равно ограничен 0…1. Общее состояние после Share.

AllowLesserСвойство
# AllowLesser
C#
public bool AllowLesser { get; set; }

Разрешает Value ниже MinValue, false по умолчанию. Переключение не пересчитывает уже сохранённое значение и не испускает Changed. Не отключает Step/Rounded. Общее состояние после Share.

ExpEditСвойство
# ExpEdit
C#
public bool ExpEdit { get; set; }

Включает экспоненциальное преобразование Ratio, false по умолчанию. Не логарифмирует само сохранённое Value. Для предсказуемой шкалы используйте положительный минимум и больший максимум; отрицательный минимум даёт линейное преобразование. Изменение не испускает Changed/ValueChanged, но может вызвать _ValueChanged при обновлении владельцев.

MaxValueСвойство
# MaxValue
C#
public double MaxValue { get; set; }

Верхняя граница диапазона, 100 по умолчанию. Значение ниже MinValue заменяется MinValue. После изменения Page и Value пересчитываются; обычный предел Value равен MaxValue − Page.

MinValueСвойство
# MinValue
C#
public double MinValue { get; set; }

Нижняя граница, 0 по умолчанию. Изменение при необходимости поднимает MaxValue, ограничивает Page, повторно применяет правила к Value и вызывает Changed. Общее состояние после Share.

PageСвойство
# Page
C#
public double Page { get; set; }

Размер страницы, 0 по умолчанию; автоматически ограничен 0…MaxValue − MinValue. Уменьшает обычный верхний предел Value до MaxValue − Page. Изменение повторно применяет Value и вызывает Changed. Это не шаг прокрутки.

RatioСвойство
# Ratio
C#
public double Ratio { get; set; }

Нормализованное положение 0…1 по полному диапазону MinValue…MaxValue с учётом ExpEdit. Setter вычисляет число и вызывает обычный SetValue; Page/Step/Rounded могут помешать точному обратному соответствию. Getter при равных границах возвращает 1.

RoundedСвойство
# Rounded
C#
public bool Rounded { get; set; }

Локальная настройка округления до целого после Step, false по умолчанию. Не входит в общее состояние Share и не пересчитывает сохранённое Value при переключении. Последующее ограничение границ может дать дробное значение даже при Rounded = true.

StepСвойство
# Step
C#
public double Step { get; set; }

Сетка округления Value относительно MinValue, 1 по умолчанию. Положительный шаг применяется при следующей записи Value; неположительный отключает эту сетку. Изменение вызывает Changed, но не пересчитывает текущее Value. Для дробного ввода обычно задайте Step = 0 и Rounded = false.

ValueСвойство
# Value
C#
public double Value { get; set; }

Текущее число. Setter применяет Step, затем Rounded, затем ограничения MinValue/MaxValue − Page с учётом AllowLesser/AllowGreater. При изменении результата вызывает ValueChanged у владельцев внутри дерева. Значение общее после Share.

Методы24

GetAsRatiodouble
# GetAsRatio
C#
public double GetAsRatio();

Нормализованное положение 0…1 по полному диапазону MinValue…MaxValue с учётом ExpEdit. Setter вычисляет число и вызывает обычный SetValue; Page/Step/Rounded могут помешать точному обратному соответствию. Getter при равных границах возвращает 1.

Возвращает double

Нормализованное положение по полному диапазону, 0…1 для корректных конечных настроек; 1 при равных границах.

GetMaxdouble
# GetMax
C#
public double GetMax();

Верхняя граница диапазона, 100 по умолчанию. Значение ниже MinValue заменяется MinValue. После изменения Page и Value пересчитываются; обычный предел Value равен MaxValue − Page.

Возвращает double

Текущее сохранённое значение настройки.

GetMindouble
# GetMin
C#
public double GetMin();

Нижняя граница, 0 по умолчанию. Изменение при необходимости поднимает MaxValue, ограничивает Page, повторно применяет правила к Value и вызывает Changed. Общее состояние после Share.

Возвращает double

Текущее сохранённое значение настройки.

GetPagedouble
# GetPage
C#
public double GetPage();

Размер страницы, 0 по умолчанию; автоматически ограничен 0…MaxValue − MinValue. Уменьшает обычный верхний предел Value до MaxValue − Page. Изменение повторно применяет Value и вызывает Changed. Это не шаг прокрутки.

Возвращает double

Сохранённый размер страницы, не шаг изменения значения.

GetStepdouble
# GetStep
C#
public double GetStep();

Сетка округления Value относительно MinValue, 1 по умолчанию. Положительный шаг применяется при следующей записи Value; неположительный отключает эту сетку. Изменение вызывает Changed, но не пересчитывает текущее Value. Для дробного ввода обычно задайте Step = 0 и Rounded = false.

Возвращает double

Текущее сохранённое значение настройки.

GetValuedouble
# GetValue
C#
public double GetValue();

Текущее число. Setter применяет Step, затем Rounded, затем ограничения MinValue/MaxValue − Page с учётом AllowLesser/AllowGreater. При изменении результата вызывает ValueChanged у владельцев внутри дерева. Значение общее после Share.

Возвращает double

Сохранённое общее значение, которое может выходить за границы при AllowGreater/AllowLesser.

IsGreaterAllowedbool
# IsGreaterAllowed
C#
public bool IsGreaterAllowed();

Разрешает Value выше MaxValue − Page, false по умолчанию. Переключение не пересчитывает уже сохранённое значение и не испускает Changed. Getter Ratio всё равно ограничен 0…1. Общее состояние после Share.

Возвращает bool

Текущее сохранённое значение настройки.

IsLesserAllowedbool
# IsLesserAllowed
C#
public bool IsLesserAllowed();

Разрешает Value ниже MinValue, false по умолчанию. Переключение не пересчитывает уже сохранённое значение и не испускает Changed. Не отключает Step/Rounded. Общее состояние после Share.

Возвращает bool

Текущее сохранённое значение настройки.

IsRatioExpbool
# IsRatioExp
C#
public bool IsRatioExp();

Включает экспоненциальное преобразование Ratio, false по умолчанию. Не логарифмирует само сохранённое Value. Для предсказуемой шкалы используйте положительный минимум и больший максимум; отрицательный минимум даёт линейное преобразование. Изменение не испускает Changed/ValueChanged, но может вызвать _ValueChanged при обновлении владельцев.

Возвращает bool

Текущее сохранённое значение настройки.

IsUsingRoundedValuesbool
# IsUsingRoundedValues
C#
public bool IsUsingRoundedValues();

Локальная настройка округления до целого после Step, false по умолчанию. Не входит в общее состояние Share и не пересчитывает сохранённое Value при переключении. Последующее ограничение границ может дать дробное значение даже при Rounded = true.

Возвращает bool

Текущее сохранённое значение настройки.

SetAllowGreatervoid
# SetAllowGreater
C#
public void SetAllowGreater(bool allow);

Разрешает Value выше MaxValue − Page, false по умолчанию. Переключение не пересчитывает уже сохранённое значение и не испускает Changed. Getter Ratio всё равно ограничен 0…1. Общее состояние после Share.

Параметры
ИмяТипПо умолчанию
allowbool—
allow

true разрешает превышать MaxValue − Page при последующих записях Value.

SetAllowLesservoid
# SetAllowLesser
C#
public void SetAllowLesser(bool allow);

Разрешает Value ниже MinValue, false по умолчанию. Переключение не пересчитывает уже сохранённое значение и не испускает Changed. Не отключает Step/Rounded. Общее состояние после Share.

Параметры
ИмяТипПо умолчанию
allowbool—
allow

true разрешает опускаться ниже MinValue при последующих записях Value.

SetAsRatiovoid
# SetAsRatio
C#
public void SetAsRatio(double value);

Нормализованное положение 0…1 по полному диапазону MinValue…MaxValue с учётом ExpEdit. Setter вычисляет число и вызывает обычный SetValue; Page/Step/Rounded могут помешать точному обратному соответствию. Getter при равных границах возвращает 1.

Параметры
ИмяТипПо умолчанию
valuedouble—
value

Нормализованное положение, обычно 0…1. Итоговое Value дополнительно проходит Step/Rounded/Page.

SetExpRatiovoid
# SetExpRatio
C#
public void SetExpRatio(bool enabled);

Включает экспоненциальное преобразование Ratio, false по умолчанию. Не логарифмирует само сохранённое Value. Для предсказуемой шкалы используйте положительный минимум и больший максимум; отрицательный минимум даёт линейное преобразование. Изменение не испускает Changed/ValueChanged, но может вызвать _ValueChanged при обновлении владельцев.

Параметры
ИмяТипПо умолчанию
enabledbool—
enabled

true включает экспоненциальное преобразование Ratio; используйте 0 < MinValue < MaxValue.

SetMaxvoid
# SetMax
C#
public void SetMax(double maximum);

Верхняя граница диапазона, 100 по умолчанию. Значение ниже MinValue заменяется MinValue. После изменения Page и Value пересчитываются; обычный предел Value равен MaxValue − Page.

Параметры
ИмяТипПо умолчанию
maximumdouble—
maximum

Конечная верхняя граница; не сохраняется ниже MinValue.

SetMinvoid
# SetMin
C#
public void SetMin(double minimum);

Нижняя граница, 0 по умолчанию. Изменение при необходимости поднимает MaxValue, ограничивает Page, повторно применяет правила к Value и вызывает Changed. Общее состояние после Share.

Параметры
ИмяТипПо умолчанию
minimumdouble—
minimum

Конечная нижняя граница; может поднять MaxValue.

SetPagevoid
# SetPage
C#
public void SetPage(double pagesize);

Размер страницы, 0 по умолчанию; автоматически ограничен 0…MaxValue − MinValue. Уменьшает обычный верхний предел Value до MaxValue − Page. Изменение повторно применяет Value и вызывает Changed. Это не шаг прокрутки.

Параметры
ИмяТипПо умолчанию
pagesizedouble—
pagesize

Конечный размер страницы; ограничивается 0…MaxValue − MinValue.

SetStepvoid
# SetStep
C#
public void SetStep(double step);

Сетка округления Value относительно MinValue, 1 по умолчанию. Положительный шаг применяется при следующей записи Value; неположительный отключает эту сетку. Изменение вызывает Changed, но не пересчитывает текущее Value. Для дробного ввода обычно задайте Step = 0 и Rounded = false.

Параметры
ИмяТипПо умолчанию
stepdouble—
step

Конечный шаг; положительный включает сетку, 0 отключает её. Текущее значение не пересчитывается.

SetUseRoundedValuesvoid
# SetUseRoundedValues
C#
public void SetUseRoundedValues(bool enabled);

Локальная настройка округления до целого после Step, false по умолчанию. Не входит в общее состояние Share и не пересчитывает сохранённое Value при переключении. Последующее ограничение границ может дать дробное значение даже при Rounded = true.

Параметры
ИмяТипПо умолчанию
enabledbool—
enabled

true включает локальное округление до целого при последующих записях Value.

SetValuevoid
# SetValue
C#
public void SetValue(double value);

Текущее число. Setter применяет Step, затем Rounded, затем ограничения MinValue/MaxValue − Page с учётом AllowLesser/AllowGreater. При изменении результата вызывает ValueChanged у владельцев внутри дерева. Значение общее после Share.

Параметры
ИмяТипПо умолчанию
valuedouble—
value

Конечное число до применения шага, округления и границ.

SetValueNoSignalvoid
# SetValueNoSignal
C#
public void SetValueNoSignal(double value);

Применяет те же числовые правила, что SetValue, без ValueChanged. При изменении обновляет общих владельцев внутри дерева: вызывает виртуальный _ValueChanged и ставит перерисовку в очередь. Поэтому подкласс всё ещё может выполнять собственную логику.

Параметры
ИмяТипПо умолчанию
valuedouble—
value

Конечное число; ValueChanged подавляется, виртуальные callback остаются.

Sharevoid
# Share
C#
public void Share(Entity with);

Делает целевой Range владельцем общего числового состояния этого Range, заменяя его прежние настройки. Параметр имеет тип Entity, но фактически должен быть Range. Rounded не разделяется. Цель немедленно получает Changed и ValueChanged; сохраняйте осторожность с обработчиками, вызывающими Share повторно.

Параметры
ИмяТипПо умолчанию
withEntity—
with

Целевой существующий Range, который получит общее состояние этого элемента. Не произвольная Entity.

Unsharevoid
# Unshare
C#
public void Unshare();

Отделяет этот элемент от общего числового состояния, сохраняя текущие значения и настройки. Другие владельцы остаются в прежней группе. Сам вызов не испускает Changed/ValueChanged.

_ValueChangedvoid
# _ValueChanged
C#
public virtual void _ValueChanged(double newValue);

Виртуальный callback для реакции подкласса на уведомление о значении. Вызывается до сигнала при обычном изменении, также при SetValueNoSignal, обновлении ExpEdit и Share. Не считайте вызов доказательством нового числа или испущенного ValueChanged; вне дерева обычные уведомления пропускаются.

Параметры
ИмяТипПо умолчанию
newValuedouble—
newValue

Текущее общее значение; callback может вызываться без изменения самого числа.

Сигналы и события2

ChangedСобытие
# Changed
C#
public event Action Changed;

Изменены MinValue, MaxValue, Step или Page. Обычная запись Value сигнал не вызывает; Share непосредственно вызывает его у целевого элемента. ExpEdit, Rounded и AllowGreater/AllowLesser не обязаны его испускать.

ValueChangedСобытие
# ValueChanged
C#
public event Range.ValueChangedEventHandler ValueChanged;

Сигнал изменившегося итогового значения через обычный setter для владельцев внутри дерева. SetValueNoSignal его подавляет; присваивание с тем же итогом его не вызывает. Share непосредственно уведомляет целевой элемент даже вне дерева и без изменения числа.

Параметры обработчика
ИмяТипПо умолчанию
valuedouble—
value

Итоговое общее значение после применения правил Range, double.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.