windows presentation foundation - fi.muni.cz filewpf #2 •pre vytváranie uživatelského rozhrania...

12
WPF Windows Presentation Foundation

Upload: duongkhanh

Post on 22-Feb-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

WPF

Windows Presentation Foundation

WPF

• Prezentačný systém slúžiaci k vytváraniu aplikácií určených pre Windows

• grafický subsystém, ktorý poskytuje jednotný prístup k:

– uživatelskému rozhraniu

– 2D a 3D grafike

– dokumentom

– médiám

WPF #2

• pre vytváranie uživatelského rozhrania slúži značkovací jazyk XAML – Extensible Application Markup Language

• Striktné oddelenie aplikačnej logiky od prezentačnej (GUI)

• MVVM: Model–View–ViewModel

– Na rozdiel od MVC, MVP, …

WPF #3

• Prečo sa učiť WPF?

– Vyspelejšie, modernejšie než WinForms

– Moderné princípy vývoja GUI aplikácií

– Získané znalosti a návyky sa dajú použiť pri tvorbe aplikácií pre:

• Windows (Vista, 7, 8, 8.1)

• WindowsStore App (WinRT)

• Windows Phone 8+

• Android

• iOS

MVVM

View

View

Mo

del

Mo

del

get/set Properties call Commands

notify changes some messaging

Whatever C# you like … … messages work well!

View

V

iew

View

Mo

del

View

Mo

del

Mo

del

Mo

del

Slide from: Stuard Lodge, @slodge https://github.com/MvvmCross/MvvmCross-Presentations

Binding

• “zviazanie” View a ViewModel-u

Slide from: Stuard Lodge, @slodge https://github.com/MvvmCross/MvvmCross-Presentations

Binding

Slide from: Stuard Lodge, @slodge https://github.com/MvvmCross/MvvmCross-Presentations

ViewModel – public properties

Slide from: Stuard Lodge, @slodge https://github.com/MvvmCross/MvvmCross-Presentations

Pre zmeny vo ViewModel-i

Slide from: Stuard Lodge, @slodge https://github.com/MvvmCross/MvvmCross-Presentations

Pre zmeny v kolekciach

Slide from: Stuard Lodge, @slodge https://github.com/MvvmCross/MvvmCross-Presentations

Pre akcie

Slide from: Stuard Lodge, @slodge https://github.com/MvvmCross/MvvmCross-Presentations

XAML

• Deklarativný jazyk (XML)

• Definuje hierarchiu komponent

<Grid>

<Label Content="Hello World!" HorizontalAlignment="Left"

Margin="25,50,0,0" VerticalAlignment="Top" Width="149"/>

<Button Content="Say Hello!" HorizontalAlignment="Left"

Margin="25,95,0,0" VerticalAlignment="Top" Width="106"

Click="Button_Click"/>

<TextBox HorizontalAlignment="Left" Height="23"

Margin="37,159,0,0" TextWrapping="Wrap" Text="TextBox"

VerticalAlignment="Top" Width="120"/>

</Grid>