Контейнер. Содержит любое количество вложенных компонентов. Каждый вложенный компонент добавляется на экран в соответствие с очередностью, заданной в разметке. Позволяет прокручивать компоненты с эффектом "прилипания". Алгоритм расположения вложений соответствует HorizontalLayout.
Свойства
Свойство | Тип* | Область | Описание | Пример | Версия |
---|---|---|---|---|---|
Visible | логический | разметка и скрипт | Задает видимость компонента. Если он невидим, его размеры, тем не менее, учитываются в контейнерах | <c:SwipeHorizontalLayout Visible="false"/> void UnHide(SwipeHorizontalLayout control) { control.Visible = true; } | - |
CssClass | строка** | разметка | Задает название CSS класса, стили которого будут применяться к данному компоненту | <c:SwipeHorizontalLayout CssClass="main_row"/> | - |
Id | строка** | разметка | Задает идентификатор компонента в области видимости данного экрана. Таким образом можно получить доступ к его свойствам из произвольного места разметки или кода контроллера. Из контроллера доступ к компоненту возможен через объявленную переменную с соответствующим типом и именем, совпадающим с указанным в атрибуте Id, либо через свойство Variables | <c:SwipeHorizontalLayout Id="shlMain"/> void UnHide() { ((SwipeHorizontalLayout)Variables["shlMain"]).Visible = true; } | - |
Parent | компонент | разметка и скрипт, только чтение | Возвращает ссылку на родительский компонент. Возвращает null если текущий объект на верху дерева. | void HideRoot() { shlMain.Parent.Visible = false; } | - |
Controls | список | скрипт, только чтение | Возвращает список визуальных компонентов, вложенных в данный контейнер. | void HideContent(SwipeHorizontalLayout container) { foreach(var control in container.Controls) control.Visible = false; } | - |
Index | число | разметка и скрипт | Задает индекс видимого элемента. Позволяет прокрутить контейнер до соответствующего вложенного компонента, согласно очередности добавления. | <c:SwipeHorizontalLayout Id="shlMain" Index="1"> ... </c:SwipeHorizontalLayout> void OpenMenu() { shlMain.Index = 0; } | - |
Percent | число (0..100) | разметка и скрипт | Задает меру, на сколько необходимо прокрутить вложенный элемент контейнера, что бы он остался отображенным. | <c:SwipeHorizontalLayout Percent="25"> ... </c:SwipeHorizontalLayout> | - |
Alignment | Default | Center | разметка | Задает способ отображения вложенных компонентов. Если задать значение свойства как Center, они будут центрироваться. | <c:SwipeHorizontalLayout Alignment="Center"> ... </c:SwipeHorizontalLayout> | - |
Scrollable | логический | разметка и скрипт | Задает возможность прокручивать содержимое. Еслизадать значение свойства как false, единственным способом прокрутки будет изменение свойства Index. | <c:SwipeHorizontalLayout Scrollable= "False"> ... </c:SwipeHorizontalLayout> | - |
OnSwipe | функция | разметка | Задает ссылку на функцию*** из основного контроллера, вызываемую при прокрутке. Первым параметром в функцию передается ссылка на объект (sender) | <c:SwipeHorizontalLayout OnSwipe="Layout_Swipe"> ... </c:SwipeHorizontalLayout> void Layout_Swipe(object sender, EventArgs e) { DConsole.WriteLine("OnSwipe fired"); } | - |
* - в качестве параметра можно передавать константу, переменную, функцию или свойства соответствующего типа
** - при установке строкового свойства в разметке, применяются особые правила форматирования текста.
Методы
Метод | Описание | Параметры | Пример | Версия |
---|---|---|---|---|
Refresh() | Перерисовывает элемент управления, вызов необходим при смене стилей. | void Btn_Click(object sender, EventArgs e) { Buttob btn = (Button)sender; btn.CssStyle = "someNewStyle"; btn.Text = "Style changed"; btn.Refresh(); } | 3.0.0 |
Пример использования
public class MainScreen : Screen { public override void OnLoading() { SwipeHorizontalLayout dl = new SwipeHorizontalLayout(); 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); } }
Добавить комментарий