2009 3 windows presentation foundation wtf

28
Dawid Cieszyński

Upload: danielplawgo

Post on 19-May-2015

492 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 2009 3 Windows Presentation Foundation Wtf

Dawid Cieszyński

Page 2: 2009 3 Windows Presentation Foundation Wtf

WPF – co to jest i do czego służy

Różnice w porównaniu do Windows Forms

Język XAML i przykłady kodu

Data Binding i Update Trigger

Expression Blend

Podsumowanie

Page 3: 2009 3 Windows Presentation Foundation Wtf

Fundacja Prezentacji WindowsaFundacja Prezentacji Windowsa

Page 4: 2009 3 Windows Presentation Foundation Wtf
Page 5: 2009 3 Windows Presentation Foundation Wtf
Page 6: 2009 3 Windows Presentation Foundation Wtf

Nowa estetyka Windows Vista

Transformacje, animacje, przezroczystość, cieniowanie, efekty trójwymiarowe, itp..

Style

Wyzwalacze

Page 7: 2009 3 Windows Presentation Foundation Wtf

• kontrolka odpowiedzialna za rysowanie• zachowanie interfejsu, efekty muszą być oprogramowane przez programistę• dane do/z kontrolki muszą być przekazywane „ręcznie”

• cała powierzchnia okna jest kontrolowana i rysowana wspólnie• wyeliminowanie uczestnictwa aplikacji w odświeżaniu okna• efekty bardzo łatwe douzyskania• osadzanie jednych kontrolek na innych• bindowanie kontrolek i obiektów

Page 8: 2009 3 Windows Presentation Foundation Wtf

<Button Width="100"> OK

<Button.Background>

LightBlue

</Button.Background>

</Button>

XAML

Button b1 = new Button();

b1.Content = "OK";

b1.Background = new

SolidColorBrush(Colors.LightBlue);

b1.Width = 100;

C#

Dim b1 As New Button

b1.Content = "OK"

b1.Background = New _

SolidColorBrush(Colors.LightBlue)

b1.Width = 100

VB.NET

Page 9: 2009 3 Windows Presentation Foundation Wtf

Canvas

Stack Panel

Dock Panel

Grid

Page 10: 2009 3 Windows Presentation Foundation Wtf
Page 11: 2009 3 Windows Presentation Foundation Wtf
Page 12: 2009 3 Windows Presentation Foundation Wtf
Page 13: 2009 3 Windows Presentation Foundation Wtf
Page 14: 2009 3 Windows Presentation Foundation Wtf
Page 15: 2009 3 Windows Presentation Foundation Wtf
Page 16: 2009 3 Windows Presentation Foundation Wtf
Page 17: 2009 3 Windows Presentation Foundation Wtf

Managed Object

ADO.NET Data Source

XML Data

Page 18: 2009 3 Windows Presentation Foundation Wtf
Page 19: 2009 3 Windows Presentation Foundation Wtf

Cel Źródło

OneWay

TwoWay

OneWayToSource

OneTime

Page 20: 2009 3 Windows Presentation Foundation Wtf

<DockPanel xmlns:c="clr-namespace:MyNamespace">

<DockPanel.Resources>

<c:MyClass x:Key="mySource" />

</DockPanel.Resources>

<Button Background=

"{Binding Path=ColorName,

Source={StaticResource mySource}}">

...

</Button>

</DockPanel>

Page 21: 2009 3 Windows Presentation Foundation Wtf

<DockPanel xmlns:c="clr-namespace:MyNamespace">

<DockPanel.Resources>...</DockPanel.Resources>

<DockPanel.DataContext>

<Binding Source="{StaticResource mySource}"/>

</DockPanel.DataContext>

<Button Background="{Binding Path=BackColorName}">

...

</Button>

<TextBox Foreground="{Binding Path=ForeColorName}">

...

</TextBox>

</DockPanel>

Page 22: 2009 3 Windows Presentation Foundation Wtf

<TextBox Width="100">

<TextBox.Text>

<Binding Source="{StaticResource myData}"

Path="ColorName"

UpdateSourceTrigger="PropertyChanged" />

</TextBox.Text>

</TextBox>

Kiedy ma następować aktualizacja?

• Default

• Explicit

• LostFocus

• PropertyChanged

Page 23: 2009 3 Windows Presentation Foundation Wtf
Page 24: 2009 3 Windows Presentation Foundation Wtf

AllowsTransparency="True" Background="Transparent"

Page 25: 2009 3 Windows Presentation Foundation Wtf
Page 26: 2009 3 Windows Presentation Foundation Wtf

Grafika 2D i 3D

Multimedia

Dokumenty, drukowanie

Użycie kontrolek Windows Forms

XAML Browser Applications (XBAPs)

Page 27: 2009 3 Windows Presentation Foundation Wtf

Łatwe tworzenie GUI

Automagiczne przekazywanie wartości

Prostota i funkcjonalność

Zachwyt użytkownika

Page 28: 2009 3 Windows Presentation Foundation Wtf

<Canvas Width="100" Height="100"><Ellipse Fill="Yellow" Stroke="Black"

StrokeThickness="7"Width="100" Height="100" />

<Ellipse Fill="Black"Width="10" Height="15"Canvas.Left="28" Canvas.Top="28" />

<Ellipse Fill="Black"Width="10" Height="15"Canvas.Left="62" Canvas.Top="28" />

<Path Stroke="Black"StrokeThickness="6"Data="M 30,60 Q 50,90 70,60" />

</Canvas>