Управление приложения изменяемого размера в App Designer

Приложения, создаваемые в App Designer изменяемого размера по умолчанию. Компоненты меняют местоположение и изменяют размер автоматически, когда пользователь изменяет размер окна во времени выполнения. AutoResizeChildren свойство управляет этим поведением при автоматическом изменении размера. По умолчанию это свойство включено для фигуры и дочерних контейнеров, таких как панели и вкладки.

Когда AutoResizeChildren свойство включено для контейнера, MATLAB® управляет размером и положением только мгновенных дочерних элементов в контейнере. Компоненты во вложенных контейнерах управляемы AutoResizeChildren свойство их непосредственного родителя. Чтобы гарантировать, что выравнивание компонентов друг относительно друга (как группировка кнопок) сохраняется, когда ваше приложение изменено, породите группировку компонентов к панели, вместо непосредственно фигуре.

Изменение размеров компонентов с нормированными модулями положения

Когда дочерний компонент контейнера изменяемого размера нормировал модули положения, определенные свойства компонента затронуты после того, как родительский контейнер изменен. Например,

Если оси или графики используют значение 'normalized' для Units свойство и порождается к контейнеру с AutoResizeChildren набор свойств к 'on'затем

  • Значение OuterPosition свойство для осей или графика изменяется, когда приложение изменено.

  • Оси или график не уменьшаются меньший, чем минимальный размер, когда приложение изменено.

Если вы хотите избежать любого из этих поведений, установите AutoResizeChildren свойство контейнера к 'off'.

Отключение автоматического изменения размеров

Можно отключить поведение при автоматическом изменении размера контейнера путем отключения свойства. Чтобы отключить свойство в App Designer, выберите контейнер и снимите флажок AutoResizeChildren во вкладке Inspector Component Browser.

Каждый раз, когда вы выбираете или снимаете этот флажок, App Designer устанавливает свойство на то же значение на всех его дочерних контейнерах. Установить AutoResizeChildren свойство дочернего контейнера к различному значению, установленному значение для дочернего контейнера после устанавливания значения для родительского элемента.

Можно также установить свойство программно путем устанавливания значения к 'on' или 'off'. Когда вы устанавливаете свойство программно, значение не изменяется для дочерних контейнеров.

app.UIFigure.AutoResizeChildren = 'off';

Чтобы полностью отключить изменение размеров, установите свойство Resize фигуры к 'off'.

Настройка Поведение при изменении размера Используя SizeChangedFcn 'callback'

Если поведение при автоматическом изменении размера не является поведением, что вы хотите, отключаете AutoResizeChildren свойство и запись SizeChangedFcn коллбэк для контейнера. В этом коллбэке вы пишете код, чтобы настроить Position свойство дочерних компонентов. Коллбэк выполняется, когда размер контейнера изменяется.

Например, SizeChangedFcn может содержать код, который сохраняет ширину поля редактирования в одной четверти ширины фигуры.

figwidth = app.UIFigure.Position(3);
app.EditField.Position(3) = .25 * figwidth;

Примечание

Начиная в R2017a, необходимо отключить AutoResizeChildren свойство позволить SizeChangedFcn коллбэк, чтобы выполниться. Для получения дополнительной информации см. App Designer: Отключение поведения при автоматическом изменении размера при записи обратных вызовов SizeChangedFcn.

Смотрите также

Похожие темы