Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 4 Следующий »

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

Свойства

СвойствоТип*ОбластьОписаниеПримерВерсия
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();
}

Стили

СтильВерсия
background-color-
  • Нет меток