Top Banner
V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics
21

V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

Dec 29, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1

Programming III.

Important events, properties, methods of UI elementsXAML basics

Page 2: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

Important events, properties, methods of UI elements

• Input (inherited from System.Windows.UIElement)– Visibility, IsVisible– Focusable, IsFocused – can receive keyboard input– IsHitTestVisible – using mouse or other device– IsEnabled – if not, then „greyed out”– AllowDrop– CommandBindings – pure MVVM – not in our schedule– IsTabStop, TabIndex

2

Page 3: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

Important events, properties, methods of UI elements• Input (inherited from System.Windows.UIElement)

– IsMouseOver– IsMouseCaptured

• AreAnyTouchesOver, …Captured … • IsStylusOver, …Captured …

– CaptureMouse(), CaptureStylus(), CaptureTouch() – Independent from the location of the input device

– ReleaseMouseCapture(), ReleaseStylusCapture(), ReleaseTouchCapture() – Turn off the input capture

– Focus() – This is for the keyboard input only

3

Page 4: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

Important events, properties, methods of UI elements• Input (inherited from System.Windows.UIElement)

– KeyDown– KeyUp– MouseDown, MouseLeftButtonDown, MouseRightButtonDown … – MouseUp, MouseLeftButtonUp, MouseRightButtonUp …– MouseEnter– MouseLeave– MouseMove– MouseWheel– MouseDoubleClick

– Other important events: • Touch events (Touch…), Stylus events (Stylus…)• Drag&drop events (Drag…)

– Special methods for the manipulation of event handlers• RaiseEvent(), AddHandler(), RemoveHandler()

4

Page 5: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

Important events, properties, methods of UI elements

• Load (inherited from System.Windows.FrameworkElement)– Initialized – After the execution of the constructor, all properties

are set– Loaded – Layout and data binding are fully completed, before

display

– IsInitialized, IsLoaded

5

Page 6: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

Important events, properties, methods of UI elements

• Basic style (inherited from System.Windows.FrameworkElement)– (Max/Min/-)Height, (Max/Min/-)Width– Margin – outside the element– Padding – inside the element– Triggers – pure MVVM – not in our schedule – Language– BringIntoView() – e.g. if scrolled outside

6

Page 7: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

Important events, properties, methods of UI elements

• Advanced style (inherited from System.Windows.Controls.Control)– Background, Foreground– BorderBrush, BorderThickness– FontFamily, FontSize, FontStretch, FontStyle, FontWeight– HorizontalContentAlignment/VerticalContentAlignment– Template – The object that determines actually how the

properties above will be used. Without a template, they have no meaning. A default template exists for all visible controls

7

Page 8: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

Important events, properties, methods of UI elements

• Content (inherited from ContentControl)– Content – HasContent– ContentStringFormat, ContentTemplate – affects how the

content is displayed

8

Page 9: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

Important events, properties, methods of UI elements

• Content (inherited from ItemsControl)– Items, ItemsSource – HasItems– ItemStringFormat, ItemTemplate – affects how the individual

items are displayed (ItemTemplate is the only template we’ll use this semester)

– IsTextSearchEnabled, IsTextSearchCaseSensitive

9

Page 10: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

Important events, properties, methods of UI elements• Naturally all the classes have specific

properties/events on their own• E.g:

– Button: Click event– TextBox: Text property– TextBox: LineCount property– TextBox: SelectionStart, SelectionLength, SelectedText

properties– TextBox: GetLineLength(), GetLineText(), ScrollToLine()

methods– TextBox: Select(), Clear()… methods– RadioButton: GroupName property – defines the

radiobuttons that belong to one group (only one of them can be selected)

10

Page 11: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

XML (w3schools.com)

•Hierarchical way to describe DATA• XML declaration + nodes + attributes

– Nodes: <bookstore></bookstore>... = <tag></tag> – Attributes: within the <book> category=“…” … 11

<?xml version="1.0"?><bookstore> <book category="COOKING">

<title lang="en">Everyday Italian</title><author>Giada De Laurentiis</author><year>2005</year><price>30.00</price>

</book> <book category="WEB">

<title lang="en">Learning XML</title><author>Erik T. Ray</author><year>2003</year><price>39.95</price>

</book></bookstore>

Page 12: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

XML• Strict rules apply – well-formed XML!

– First line: optional format specifier, with definition of encoding :<?xml version="1.0" encoding="ISO-8859-1"?><?xml version="1.0" encoding="UTF-8"?>

– Every node can contain:• Text• Sub nodes• Attributes

– There has to be exactly one root element (<bookstore>)– Closing a tag is obligatory (<tag></tag> or <tag />), with good

nesting– The whole document is case-sensitive

12

Page 13: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

XML

• The nodes and the attributes can describe an object• Using nesting, we can represent hierarchy – the XML

always depends on the interpretation!

13

<book category="COOKING"><title lang="en">Everyday Italian</title><author>Giada De Laurentiis</author><year>2005</year><price>30.00</price>

</book>

<?xml version="1.0"?><bookstore> <book category="COOKING"> ... </book> <book category="WEB"> ... </book></bookstore>

Page 14: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

XAML (eXtensible Application Markup Language)

• XML-based language, where we describe the hierarchy and the properties of .NET objects– VALID xml !!! (not only well-formed)– We can use types that are not abstract and that have a default

(zero-parameter) constructor• Everything in the XAML could also be written in C# (or

other languages in the CLR: language-independent)• In the WPF we use it to build up a GUI• When compiling a XAML...

– msbuild.exe attaches it into the assembly as a binary resource – .g.cs -> .baml

– The InitializeComponent() loads the XAML, which is called in the constructor 14

Page 15: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

XAML

• XAML description:

• C# language:

• The XAML nodes actually mean the creation of an instance of a .NET class

• The attributes change the properties / event subscriptions

15

<CheckBox Content="Automatikus mentés" Name="checkBox1" IsChecked="True"

Checked="checkBox1_Checked"/>

CheckBox checkBox1 = new CheckBox();checkBox1.Content = "Automatikus mentés";checkBox1.IsChecked = true;checkBox1.Checked += checkBox1_Checked;

Page 16: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

XAML• Setting the content explicitly:

• Property syntax: <Typename.Propertyname> sub-node

• Setting the content implicitly:

According to the XAML specs: the immediate children set the Content Property, but this property is not necessary the actual Content (for ItemsControl/Layout managers, the immediate children set the Items/Children property) 16

<CheckBox Content="Automatikus mentés" Name="checkBox1" IsChecked="True"/>

<CheckBox Name="checkBox1" IsChecked="True"> Automatikus mentés</CheckBox>

<CheckBox Name="checkBox1" IsChecked="True"> <CheckBox.Content> Automatikus mentés </CheckBox.Content></CheckBox>

Page 17: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

XAML• More complex content

• Using the Property syntax

• Syntax error – this is NOT a ContentControl descendant, there is no Content or anything similar

17

<CheckBox Name="checkBox1" IsChecked="True"> <Button>Automatikus mentés</Button></CheckBox>

<CheckBox Name="checkBox1" IsChecked="True"> <CheckBox.Content> <Button>Automatikus mentés</Button> </CheckBox.Content></CheckBox>

<ScrollBar Name="scrollBar1"> <Button>Automatikus mentés</Button></ScrollBar>

Page 18: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

XAML• With the ItemsControl, the immediate children set the Items…

• With layout manaagers, the immediate children set the Children

18

<ListBox > <Button Content="Button" Width="75"/> <Button Content="Button" Width="75"/> <Button Content="Button" Width="75"/></ListBox>

<Window ... Title="MainWindow" Height="350" Width="525"> <Grid> <Button Content="Button" Width="75" ... /> <Button Content="Button" Width="75" ... /> <Button Content="Button" Width="75" ... /> </Grid></Window> Collection Syntax

Page 19: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

XAML• Collection Syntax

– More then one sub-nodes can be specified, if the given property is a collection (IList, Array, IDictionary)

– ListBox.Items, Grid.Children, etc...

19

<ListBox > <Button Content="Button" Width="75"/> <Button Content="Button" Width="75"/> <Button Content="Button" Width="75"/></ListBox>

<Grid> <Grid.RowDefinitions> <RowDefinition Height="1*"/> <RowDefinition Height="1*"/> </Grid.RowDefinitions> ...</Grid>

Page 20: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

XAML• Attached Property Syntax

20

<Grid> <Grid.RowDefinitions> <RowDefinition Height="107*"/> <RowDefinition Height="115*"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="66*"/> <ColumnDefinition Width="67*"/> </Grid.ColumnDefinitions> <Button Content="Button1" Grid.Column="0" Grid.Row="0"/> <Button Content="Button2" Grid.Column="1" Grid.Row="0"/> <Button Content="Button3" Grid.Column="0" Grid.Row="1"/></Grid>

Page 21: V 1.1 Programming III. Important events, properties, methods of UI elements XAML basics.

V 1.1 ÓE-NIK, 2015

Practice exercise

21