Контейнер. Содержит не более одного вложенного компонента. Корневой элемент экрана.
Свойства
Свойство | Тип* | Область | Описание | Пример | Версия |
---|---|---|---|---|---|
Visible | логический | разметка и скрипт | Задает видимость компонента. Если он невидим, его размеры, тем не менее, учитываются в контейнерах | Не реализовано в 3.0, чтобы скрыть экран необходимо показать какой-то другой.
| - |
CssClass | строка** | разметка | Задает название CSS класса, стили которого будут применяться к данному компоненту | <c:Screen CssClass="main_row"> ... </c:Screen > | - |
Id | строка** | разметка | Задает идентификатор компонента в области видимости данного экрана. Таким образом можно получить доступ к его свойствам из произвольного места разметки или кода контроллера. Из контроллера доступ к компоненту возможен через объявленную переменную с соответствующим типом и именем, совпадающим с указанным в атрибуте Id, либо через свойство Variables | В 3.0 не имеет смысла, контроллер и так работает в контексте экрана, его не нужно искать или идентифицировать. | - |
Controls | список | скрипт, только чтение | Возвращает список визуальных компонентов, вложенных в данный контейнер. | void HideAllControls() { forech(var control in Controls) control.Visible = false; } | - |
StyleSheet | строка** | разметка | Задает название css файла, стили которого дополнительно применяются к экрану | <c:Screen StyleSheet="Style\Order.css"> ... </c:Screen > | - |
Variables | таблица ключ - значение | разметка и скрипт | Таблица ключ-значение, заполняется в момент загрузки экрана из разметки либо явным вызовом s:Push, либо присвоением идентификатора элементу управления атрибутом Id, либо вызовом SetData при инициализации экрана. | public override void OnLoading() { forech(var item in Variables) DConsole.WriteLine(item.Key); } |
* - в качестве параметра можно передавать константу, переменную, функцию или свойства соответствующего типа
** - при установке строкового свойства в разметке, применяются особые правила форматирования текста.
Методы
Метод | Описание | Параметры | Пример | Версия |
---|---|---|---|---|
Refresh() | Перерисовывает элемент управления, вызов необходим при смене стилей. | void Btn_Click(object sender, EventArgs e) { Refresh(); //the whole screen } | 3.0.0 | |
AddChild() | Добавляет элемент управления в контейнер | object | public class MainScreen : Screen { public override void OnLoading() { DockLayout dl = new DockLayout(); 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); //add Screen root control } void BtnClick(object sender, EventArgs e) { Button btn = (Button)sender; DConsole.WriteLine(btn.Text); } } | |
LoadFromStream() | Загружает разметку экрана из потока, строит дерево элементов управления | System.IO.Stream | void Btn_Click(object sender, EventArgs e) { Screen scr = new MyCustomScreen(); System.IO.Stream s = Application.GetResourceStream("Screen\Custom.xml"); scr.LoadFromStream(s); scr.Show(); } | |
LoadStyleSheet() | Загружает таблицу стилей | System.IO.Stream | void Btn_Click(object sender, EventArgs e) { Screen scr = new MyCustomScreen(); System.IO.Stream s = Application.GetResourceStream("Screen\Custom.xml"); scr.LoadFromStream(s); System.IO.Stream s2 = Application.GetResourceStream("Style\Custom.css"); scr.LoadStyleSheet(s2); scr.Show(); } | |
Show() | Показывает экран | void Btn_Click(object sender, EventArgs e) { Screen scr = new MyCustomScreen(); System.IO.Stream s = Application.GetResourceStream("Screen\Custom.xml"); scr.LoadFromStream(s); scr.Show(); } | ||
SetData() | Добавляет ключи в таблицу Variables. Используется для передачи аргументов при показе нового экрана. Переданные ключи могут быть использованы в разметке. | Dictionary<string,object> | public class SomeData : Entity { public int Id { get; set; } public String Name { get; set; } public SomeData(int id, String name) { Id = id; Name = name; } } void Btn_Click(object sender, EventArgs e) { Dictionary<string, object> x = new Dictionary<string, object>(); x.Add("data", new SomeData(1, "one")); x.Add("simpleData", "just a string"); Screen scr = new MyCustomScreen(); scr.SetData(x); scr.Show(); } | |
OnLoading() | Обработчик события создания экрана. Вызывается один раз после создания. | public class MainScreen : Screen { TextView tv = null; public override void OnLoading() { VerticalLayout vl = new VerticalLayout(); vl.CssStyle = "someStyle"; tv = new textView(); vl.AddChild(tv); this.AddChild(vl); //add Screen root control } int counter = 0; public override void OnShow() { counter++; tv.Text = String.Format("This screen has been showed {0} times", counter.ToString()); } } | ||
OnShow() | Обработчик показа экрана. Вызывается каждый раз после перед показом экрана |
|
Стили
Стиль | Версия |
---|---|
background-color | - |