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

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

« Предыдущий Версия 6 Текущий »

Контейнер. Содержит любое количество вложенных компонентов. Каждый вложенный компонент добавляется на экран в соответствие с очередностью, заданной в разметке. Каждый следующий вложенный компонент располагается правее предыдущего. Если сумма высоты и отступов компонента меньше высоты контейнера, расположение по вертикали определяется согласно стилю vertical-align вложенного компонента. 

Свойства

СвойствоТип*ОбластьОписаниеПримерВерсия
Visibleлогическийразметка и скриптЗадает видимость компонента. Если он невидим, его размеры, тем не менее, учитываются в контейнерах
<c:HorizontalLayout Visible="false"/>
void Hide(HorizontalLayout control) {
	control.Visible = false;
}
 -
CssClassстрока**разметкаЗадает название CSS класса, стили которого будут применяться к данному компоненту
<c:HorizontalLayout CssClass="main_row"/>
-
Idстрока**разметкаЗадает идентификатор компонента в области видимости данного экрана. Таким образом можно получить доступ к его свойствам из произвольного места разметки или кода контроллера. Из контроллера доступ к компоненту возможен через объявленную переменную с соответствующим типом и именем, совпадающим с указанным в атрибуте Id, либо через свойство Variables
<c:HorizontalLayout Id="hlMain"/>
void HideMain() {
	hlMain.Visible = false;
}
-
Parentкомпонентразметка и скрипт, только чтениеВозвращает ссылку на родительский компонент. Возвращает null если текущий объект на верху дерева.
void HideRoot() {
	hlMain.Parent.Visible = false;
}
-
Controlsсписокскрипт, только чтениеВозвращает список визуальных компонентов, вложенных в данный контейнер.
void HideButtons(HorizontalLayout control) {
	foreach(var ctrl in control.Controls)
		((Button)ctrl).Visible = false;
}
-
OnClickфункцияразметкаЗадает ссылку на функцию обработчик события, вызываемую при нажатии на кнопку. Первым параметром в функцию передается ссылка на объект HorizontalLayout (sender).
<c:HorizontalLayout OnClick="HL_OnClick"/>
void HL_OnClick(object sender, EventArgs e) {
	((HorizontalLayout)sender.Visible = false;
}
-
OnClickActionфункцияразметкаЗадает ссылку на функцию из основного контроллера, вызываемую при нажатии на кнопку.

 

Не реализовано в 3.0

 

-
OnEventстрока** Задает событие, при выполнении которого будет вызвана функция, указанная в свойстве OnClick. Пример события: Back - вызывается при нажатии на кнопку "Назад" в Android устройствах.
<c:HorizontalLayout OnClick="HL_Click" OnEvent="Back"/>
 -
SubmitScopeстрока** 

Задает область валидации. Возможные значения: "all" - проверяются все компоненты окна; список идентификаторов компонентов через знак ";". Обратите внимание: постусловием для контейнеров является выполнение всех постусловий его потомков.

Не реализовано в 3.0

<c:HorizontalLayout OnClick="$DoForward()" SubmitScope="edtName; grValues"/>
<c:EditText Id="edtName" Required="true"/>
<c:HorizontalLayout Id="grValues">
	<c:EditText Id="edtAddress" Length="20"/>
	<c:EditText Id="edtUrl" Length="10"/>
	<c:EditText Id="edtPhone" Length="11" Mask="[0-9]+"/>
</c:HorizontalLayout>
2.3.3.107

* - в качестве параметра можно передавать константу, переменную, функцию или свойства соответствующего типа

** - при установке строкового свойства в разметке, применяются особые правила форматирования текста.

Методы

МетодОписаниеПараметрыПримерВерсия
Refresh()Перерисовывает элемент управления, вызов необходим при смене стилей. 
void Btn_Click(object sender, EventArgs e)
{
	Buttob btn = (Button)sender;
	btn.CssStyle = "someNewStyle";
	btn.Text = "Style changed";
	btn.Refresh();
}
3.0.0
AddChild()Добавляет дочерний элемент управления в контейнерobject
public class MainScreen : Screen
{
	public override void OnLoading()
	{
		HorizontalLayout dl = new HorizontalLayout();
		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);
	}
 }
 

Стили

  • Нет меток