Контейнер. Содержит любое количество вложенных компонентов. Каждый вложенный компонент добавляется на экран в соответствие с очередностью, заданной в разметке. Каждый следующий вложенный компонент располагается ниже предыдущего. Если сумма ширины и отступов компонента меньше ширины контейнера, расположение по вертикали определяется согласно стилю horizontal-align вложенного компонента.
Свойства
Свойство | Тип* | Область | Описание | Пример | Версия |
---|---|---|---|---|---|
Visible | логический | разметка и скрипт | Задает видимость компонента. Если он невидим, его размеры, тем не менее, учитываются в контейнерах | <c:VerticalLayout Visible="false"/> void Hide(VerticalLayout control) { control.Visible = false; } | - |
CssClass | строка** | разметка | Задает название CSS класса, стили которого будут применяться к данному компоненту | <c:VerticalLayout CssClass="main_row"/> | - |
Id | строка** | разметка | Задает идентификатор компонента в области видимости данного экрана. Таким образом можно получить доступ к его свойствам из произвольного места разметки или кода контроллера. Из контроллера доступ к компоненту возможен через объявленную переменную с соответствующим типом и именем, совпадающим с указанным в атрибуте Id, либо через свойство Variables | <c:VerticalLayout Id="vlMain"/> void HideMain() { vlMain.Visible = false; } | - |
Parent | компонент | разметка и скрипт, только чтение | Возвращает ссылку на родительский компонент. Возвращает null если текущий объект на верху дерева. | void HideRoot() { vlMain.Parent.Visible = false; } | - |
Controls | список | скрипт, только чтение | Возвращает список визуальных компонентов, вложенных в данный контейнер. | void HideButtons(VerticalLayout control) { foreach(var ctrl in control.Controls) ((Button)ctrl).Visible = false; } | - |
OnClick | функция | разметка | Задает ссылку на функцию обработчик события, вызываемую при нажатии на кнопку. Первым параметром в функцию передается ссылка на объект VerticalLayout (sender). | <c:VerticalLayout OnClick="VL_OnClick"/> void VL_OnClick(object sender, EventArgs e) { ((VerticalLayout)sender.Visible = false; } | - |
OnClickAction | функция | разметка | Задает ссылку на функцию из основного контроллера, вызываемую при нажатии на кнопку. |
Не реализовано в 3.0
| - |
OnEvent | строка** | разметка | Задает событие, при выполнении которого будет вызвана функция, указанная в свойстве OnClick. Пример события: Back - вызывается при нажатии на кнопку "Назад" в Android устройствах. | <c:VerticalLayout OnClick="HL_Click" OnEvent="Back"/> | - |
SubmitScope | строка** | разметка и скрипт | Задает область валидации. Возможные значения: "all" - проверяются все компоненты окна; список идентификаторов компонентов через знак ";". Обратите внимание: постусловием для контейнеров является выполнение всех постусловий его потомков. | Не реализовано в 3.0 <c:VerticalLayout OnClick="$DoForward()" SubmitScope="edtName; grValues"/> <c:EditText Id="edtName" Required="true"/> <c:HorizontalLayout Id="grValues"> <c:EditText Id="edtAddress" Length="20"/> <c:EditText Id="edtUrl" Length="10"/> <c:EditText Id="edtPhone" Length="11" Mask="[0-9]+"/> </c:HorizontalLayout> | 2.3.3.107 |
* - в качестве параметра можно передавать константу, переменную, функцию или свойства соответствующего типа
** - при установке строкового свойства в разметке, применяются особые правила форматирования текста.
Методы
Метод | Описание | Параметры | Пример | Версия |
---|---|---|---|---|
Refresh() | Перерисовывает элемент управления, вызов необходим при смене стилей. | void Btn_Click(object sender, EventArgs e) { Buttob btn = (Button)sender; btn.CssStyle = "someNewStyle"; btn.Text = "Style changed"; btn.Refresh(); } | 3.0.0 | |
AddChild() | Добавляет элемент управления в контейнер | object | public class MainScreen : Screen { public override void OnLoading() { VerticalLayout dl = new VerticalLayout(); dl.CssStyle = "someStyle"; for(int i=0;i<3;i++) { Button btn = new Button(); btn.Text = String.Format("Button {0}", i.ToString()); btn.OnClick += Btn_Click dl.AddChild(btn); } this.AddChild(dl); } void BtnClick(object sender, EventArgs e) { Button btn = (Button)sender; DConsole.WriteLine(btn.Text); } } |