Контейнер. Содержит любое количество вложенных компонентов. Каждый вложенный компонент добавляется на экран в соответствие с очередностью, заданной в разметке. Позволяет прокручивать компоненты с эффектом "прилипания". Алгоритм расположения вложений соответствует HorizontalLayout. 

Свойства

СвойствоТип*ОбластьОписаниеПримерВерсия
Visibleлогическийразметка и скриптЗадает видимость компонента. Если он невидим, его размеры, тем не менее, учитываются в контейнерах
<c:SwipeHorizontalLayout Visible="false"/>
void UnHide(SwipeHorizontalLayout control) {
	control.Visible = true;
}
 -
CssClassстрока**разметкаЗадает название CSS класса, стили которого будут применяться к данному компоненту
<c:SwipeHorizontalLayout CssClass="main_row"/>
-
Idстрока**разметкаЗадает идентификатор компонента в области видимости данного экрана. Таким образом можно получить доступ к его свойствам из произвольного места разметки или кода контроллера. Из контроллера доступ к компоненту возможен через объявленную переменную с соответствующим типом и именем, совпадающим с указанным в атрибуте Id, либо через свойство Variables
<c:SwipeHorizontalLayout Id="shlMain"/>
void UnHide() {
	((SwipeHorizontalLayout)Variables["shlMain"]).Visible = true;
}
-
Parentкомпонентразметка и скрипт, только чтениеВозвращает ссылку на родительский компонент. Возвращает null если текущий объект на верху дерева.
void HideRoot() {
	shlMain.Parent.Visible = false;
}
-
Controlsсписокскрипт, только чтениеВозвращает список визуальных компонентов, вложенных в данный контейнер.
void HideContent(SwipeHorizontalLayout container) {
	foreach(var control in container.Controls)
		control.Visible = false;
}
-
Indexчислоразметка и скриптЗадает индекс видимого элемента. Позволяет прокрутить контейнер до соответствующего вложенного компонента, согласно очередности добавления.
<c:SwipeHorizontalLayout Id="shlMain" Index="1">
	...
</c:SwipeHorizontalLayout>
void OpenMenu() {
	shlMain.Index = 0;
}
-
Percentчисло (0..100)разметка и скрипт Задает меру, на сколько необходимо прокрутить вложенный элемент контейнера, что бы он остался отображенным.
<c:SwipeHorizontalLayout Percent="25">
	...
</c:SwipeHorizontalLayout>
-
AlignmentDefault | CenterразметкаЗадает способ отображения вложенных компонентов. Если задать значение свойства как Center, они будут центрироваться.
<c:SwipeHorizontalLayout Alignment="Center">
	...
</c:SwipeHorizontalLayout>
-
Scrollableлогическийразметка и скрипт Задает возможность прокручивать содержимое. Еслизадать значение свойства как false, единственным способом прокрутки будет изменение свойства Index.
<c:SwipeHorizontalLayout Scrollable= "False">
	...
</c:SwipeHorizontalLayout>
-
OnSwipeфункцияразметкаЗадает ссылку на функцию*** из основного контроллера, вызываемую при прокрутке. Первым параметром в функцию передается ссылка на объект (sender)
<c:SwipeHorizontalLayout OnSwipe="Layout_Swipe">
	...
</c:SwipeHorizontalLayout>
void Layout_Swipe(object sender, EventArgs e) {
	DConsole.WriteLine("OnSwipe fired");
}
-

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

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

Методы

МетодОписаниеПараметрыПримерВерсия
Refresh()Перерисовывает элемент управления, вызов необходим при смене стилей. 
void Btn_Click(object sender, EventArgs e)
{
	Buttob btn = (Button)sender;
	btn.CssStyle = "someNewStyle";
	btn.Text = "Style changed";
	btn.Refresh();
}
3.0.0

Пример использования

public class MainScreen : Screen
{
	public override void OnLoading()
	{
		SwipeHorizontalLayout dl = new SwipeHorizontalLayout();
		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);
	}
 }



Стили

  • Нет меток
Написать комментарий...