GraphFrame
Рамка группировки элементов GraphEdit с заголовком и настройками автоматического охвата.
GraphFrame и входящие в группу GraphElement остаются непосредственными детьми одного GraphEdit. Для связи вызывайте GraphEdit.AttachGraphElementToFrame с Name элемента и рамки, для снятия — DetachGraphElementFromFrame. Это отношение графа, не Reparent и не владение памятью. Простое помещение элементов внутрь прямоугольника не создаёт такую связь.
Title — видимая подпись, отдельно от Entity.Name, используемого связями. Не используйте отображаемый заголовок как ключ. Для переименования идентификаторов обновляйте модель и связи; для смены подписи меняйте только Title.
AutoshrinkEnabled по умолчанию true: GraphEdit рассчитывает рамку вокруг прикреплённых элементов с AutoshrinkMargin. Это не подгонка вокруг детей в дереве. Для ручного размера отключите AutoshrinkEnabled и включите унаследованный Resizable; ограничения содержимого и привязка GraphEdit всё равно могут ограничить размер.
В установленном SDK 1.0.0 есть несовпадение AutoshrinkChanged: C#-событие объявлено без аргументов, но нативный сигнал передаёт Vector2 размера. Обычная подписка через += вызывает ошибку количества аргументов. Если уведомление нужно приложению, используйте Connect(GraphFrame.SignalName.AutoshrinkChanged, Callable.From<Vector2>(handler)), где handler принимает Vector2. При отключении сохраните тот же Callable для Disconnect. Это обход ограничения SDK, а не исправление движка.
GetTitlebarHBox возвращает внутренний контейнер, принадлежащий рамке. Можно добавить в него свою кнопку, но нельзя освобождать или переносить сам контейнер. TintColorEnabled включает пользовательский цвет тела; одно присваивание TintColor его не включает. DragMargin задаёт ширину краевой области захвата, отдельно от внешнего AutoshrinkMargin. Внутренняя площадь рамки не является сплошной кнопкой захвата.
Освобождение рамки не означает удаление элементов группы: они принадлежат GraphEdit. При удалении группы сначала решите, сохранять ли её элементы в модели, снимите связи и затем освободите нужные объекты явно.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
GraphFrameКонструктор
public GraphFrame();Создаёт рамку: AutoshrinkEnabled = true, AutoshrinkMargin = 40, DragMargin = 16, TintColorEnabled = false. Встроенный titlebar принадлежит рамке.
Свойства6
AutoshrinkEnabledСвойство
public bool AutoshrinkEnabled { get; set; }Разрешает GraphEdit автоматически охватывать прикреплённые элементы, true по умолчанию. Отключите для ручного размера; это не Reparent и не автоматическое удаление элементов.
AutoshrinkMarginСвойство
public int AutoshrinkMargin { get; set; }Запас вокруг прикреплённых элементов в координатах графа, 40 по умолчанию. Используйте неотрицательное значение. Изменение испускает нативный AutoshrinkChanged.
DragMarginСвойство
public int DragMargin { get; set; }Ширина краевой области захвата в локальных единицах рамки, 16 по умолчанию. Не внешний запас охвата и не отступ дочернего контейнера.
TintColorСвойство
public Color TintColor { get; set; }Сохранённый пользовательский цвет тела. Присваивание не включает TintColorEnabled и не меняет общий ресурс темы; конкретная отрисовка зависит от StyleBox.
TintColorEnabledСвойство
public bool TintColorEnabled { get; set; }Включает пользовательский цвет тела рамки, false по умолчанию. Не изменяет выделение и не задаёт цвет заголовка.
TitleСвойство
public string Title { get; set; }Видимая подпись рамки, независимо от Entity.Name и ключей связи в GraphEdit.
Методы13
GetAutoshrinkMarginint
public int GetAutoshrinkMargin();Запас вокруг прикреплённых элементов в координатах графа, 40 по умолчанию. Используйте неотрицательное значение. Изменение испускает нативный AutoshrinkChanged.
intЗапас вокруг прикреплённых элементов в координатах графа, 40 по умолчанию. Используйте неотрицательное значение. Изменение испускает нативный AutoshrinkChanged.
GetDragMarginint
public int GetDragMargin();Ширина краевой области захвата в локальных единицах рамки, 16 по умолчанию. Не внешний запас охвата и не отступ дочернего контейнера.
intШирина краевой области захвата в локальных единицах рамки, 16 по умолчанию. Не внешний запас охвата и не отступ дочернего контейнера.
GetTintColorColor
public Color GetTintColor();Сохранённый пользовательский цвет тела. Присваивание не включает TintColorEnabled и не меняет общий ресурс темы; конкретная отрисовка зависит от StyleBox.
ColorСохранённый пользовательский цвет тела. Присваивание не включает TintColorEnabled и не меняет общий ресурс темы; конкретная отрисовка зависит от StyleBox.
GetTitlestring
public string GetTitle();Видимая подпись рамки, независимо от Entity.Name и ключей связи в GraphEdit.
stringВидимая подпись рамки, независимо от Entity.Name и ключей связи в GraphEdit.
GetTitlebarHBoxHBoxContainer
public HBoxContainer GetTitlebarHBox();Возвращает общий внутренний HBoxContainer рамки. Добавляйте свои элементы, но не освобождайте и не переносите сам контейнер.
HBoxContainerВозвращает общий внутренний HBoxContainer рамки. Добавляйте свои элементы, но не освобождайте и не переносите сам контейнер.
IsAutoshrinkEnabledbool
public bool IsAutoshrinkEnabled();Разрешает GraphEdit автоматически охватывать прикреплённые элементы, true по умолчанию. Отключите для ручного размера; это не Reparent и не автоматическое удаление элементов.
boolРазрешает GraphEdit автоматически охватывать прикреплённые элементы, true по умолчанию. Отключите для ручного размера; это не Reparent и не автоматическое удаление элементов.
IsTintColorEnabledbool
public bool IsTintColorEnabled();Включает пользовательский цвет тела рамки, false по умолчанию. Не изменяет выделение и не задаёт цвет заголовка.
boolВключает пользовательский цвет тела рамки, false по умолчанию. Не изменяет выделение и не задаёт цвет заголовка.
SetAutoshrinkEnabledvoid
public void SetAutoshrinkEnabled(bool shrink);Разрешает GraphEdit автоматически охватывать прикреплённые элементы, true по умолчанию. Отключите для ручного размера; это не Reparent и не автоматическое удаление элементов.
| Имя | Тип | По умолчанию |
|---|---|---|
shrink | bool | — |
shrinkРазрешает GraphEdit автоматически охватывать прикреплённые элементы, true по умолчанию. Отключите для ручного размера; это не Reparent и не автоматическое удаление элементов.
SetAutoshrinkMarginvoid
public void SetAutoshrinkMargin(int autoshrinkMargin);Запас вокруг прикреплённых элементов в координатах графа, 40 по умолчанию. Используйте неотрицательное значение. Изменение испускает нативный AutoshrinkChanged.
| Имя | Тип | По умолчанию |
|---|---|---|
autoshrinkMargin | int | — |
autoshrinkMarginЗапас вокруг прикреплённых элементов в координатах графа, 40 по умолчанию. Используйте неотрицательное значение. Изменение испускает нативный AutoshrinkChanged.
SetDragMarginvoid
public void SetDragMargin(int dragMargin);Ширина краевой области захвата в локальных единицах рамки, 16 по умолчанию. Не внешний запас охвата и не отступ дочернего контейнера.
| Имя | Тип | По умолчанию |
|---|---|---|
dragMargin | int | — |
dragMarginШирина краевой области захвата в локальных единицах рамки, 16 по умолчанию. Не внешний запас охвата и не отступ дочернего контейнера.
SetTintColorvoid
public void SetTintColor(Color color);Сохранённый пользовательский цвет тела. Присваивание не включает TintColorEnabled и не меняет общий ресурс темы; конкретная отрисовка зависит от StyleBox.
| Имя | Тип | По умолчанию |
|---|---|---|
color | Color | — |
colorСохранённый пользовательский цвет тела. Присваивание не включает TintColorEnabled и не меняет общий ресурс темы; конкретная отрисовка зависит от StyleBox.
SetTintColorEnabledvoid
public void SetTintColorEnabled(bool enable);Включает пользовательский цвет тела рамки, false по умолчанию. Не изменяет выделение и не задаёт цвет заголовка.
| Имя | Тип | По умолчанию |
|---|---|---|
enable | bool | — |
enableВключает пользовательский цвет тела рамки, false по умолчанию. Не изменяет выделение и не задаёт цвет заголовка.
SetTitlevoid
public void SetTitle(string title);Видимая подпись рамки, независимо от Entity.Name и ключей связи в GraphEdit.
| Имя | Тип | По умолчанию |
|---|---|---|
title | string | — |
titleВидимая подпись рамки, независимо от Entity.Name и ключей связи в GraphEdit.
Сигналы и события1
AutoshrinkChangedСобытие
public event Action AutoshrinkChanged;Ограничение установленного SDK 1.0.0: C# event без аргументов, нативный сигнал передаёт Vector2. Обычная += подписка вызывает ошибку количества аргументов. Используйте Connect с Callable.From<Vector2>(handler) и GraphFrame.SignalName.AutoshrinkChanged; прочитайте настройки рамки заново.
Свойства темы
Это ключи ресурсов Theme, а не свойства C# класса. Используйте методы GetTheme…() и AddTheme…Override() у Control с соответствующим типом значения.
| Ключ и тип | Описание |
|---|---|
resizer_colorColor | Цветовая модуляция, примененная к значку изменения размера. По умолчанию:Color(0.875, 0.875, 0.875, 1) |
panelStyleBox |
|
panel_selectedStyleBox |
|
titlebarStyleBox |
|
titlebar_selectedStyleBox |
|