...
Свойство | Тип* | Область | Описание | Пример | Версия |
---|
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() | Обработчик показа экрана. Вызывается каждый раз после перед показом экрана | | |
Стили