Контейнер. Содержит не более одного вложенного компонента. Корневой элемент экрана.

Свойства

СвойствоТип*ОбластьОписаниеПримерВерсия
CssClassстрока**разметкаЗадает название CSS класса, стили которого будут применяться к данному компоненту
<c:Screen CssClass="main_row">
	...
</c:Screen >
-
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-
  • Нет меток

0 Комментариев

Вы не можете зарегистрироваться в системе. Любые изменения, которые Вы сделаете, будут помечены как сделанные анонимно. Вы можете Войти, если у Вас есть учётная запись.