2009 3 windows presentation foundation wtf
TRANSCRIPT
Dawid Cieszyński
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
Fundacja Prezentacji WindowsaFundacja Prezentacji Windowsa
Nowa estetyka Windows Vista
Transformacje, animacje, przezroczystość, cieniowanie, efekty trójwymiarowe, itp..
Style
Wyzwalacze
• 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
<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
Canvas
Stack Panel
Dock Panel
Grid
Managed Object
ADO.NET Data Source
XML Data
Cel Źródło
OneWay
TwoWay
OneWayToSource
OneTime
<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>
<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>
<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
AllowsTransparency="True" Background="Transparent"
Grafika 2D i 3D
Multimedia
Dokumenty, drukowanie
Użycie kontrolek Windows Forms
XAML Browser Applications (XBAPs)
Łatwe tworzenie GUI
Automagiczne przekazywanie wartości
Prostota i funkcjonalność
Zachwyt użytkownika
<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>