Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

WINDOWS PRESENTATION FOUNDATION platforma tworzenia aplikacji okienkowych z bogatą warstwą prezentacji (.NET 3.0 ) rozdzielenie warstwy prezentacji (język.

Podobne prezentacje


Prezentacja na temat: "WINDOWS PRESENTATION FOUNDATION platforma tworzenia aplikacji okienkowych z bogatą warstwą prezentacji (.NET 3.0 ) rozdzielenie warstwy prezentacji (język."— Zapis prezentacji:

1 WINDOWS PRESENTATION FOUNDATION platforma tworzenia aplikacji okienkowych z bogatą warstwą prezentacji (.NET 3.0 ) rozdzielenie warstwy prezentacji (język XAML) i warstwy interakcji (język C# ) możliwe przejście do aplikacji pobieranej z serwera internetowego i osadzanej w przeglądarce (XBAP - XAML Browser Application) A. Troelsen, Pro C# 2010 and the.NET 4 Platform, APRESS, 2010 M. MacDonald, Pro WPF in C# 2010: Windows Presentation Foundation in.NET 4.0, APRESS, 2010

2 podstawowe cechy –– rozbudowane możliwości kształtowania wyglądu i stylu okien ( szablony, czcionki ) –– wiązania danych –– obsługa grafiki 2D i 3D (grafika wektorowa) oraz animacji –– obsługa dokumentów –– współpraca z Windows Forms

3 podstawowe klasy –– Visual : generacja obrazu okna –– DispatcherObject : obsługa wątków –– Control : klasa bazowa elementów sterujących –– Application : nadzorowanie cyklu życia aplikacji inne główne klasy –– UIElement –– FrameworkElement –– ContentElement –– FrameworkContentElement

4 przestrzenie nazw using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Media; using System.Windows.Navigation; using System.Windows.Shapes; FirstWPF

5 język XAML Extensible Application Markup Language –– dialekt XML –– opis warstwy prezentacji program w języku XAML jest tłumaczony na BAML ( Binary Application Markup Language ) język XAML jest używany w innych narzędziach Expression Design ; Expression Blend ; Kaxaml

6 www.kaxaml.com

7 aplikacje WPF mogą nie korzystać z XAML // 1 - przybornik + właściwości // 2 - C# System.Windows.Controls.Button btn = new Button(); btn.Content = "Duś"; // 3 - XAML // lub Duś // XAML udostępnia podzbiór możliwości C# NewButton

8 rozmieszczanie elementów na formie panele ( tylko jeden w danym oknie, ale można zagnieżdżać ) – Canvas // bez narzuconego układu, elementy // pozycjonowane dowolnie względem panelu // Width,Height : Auto // Alignments : Stretch całe okno..... // definicje elementów CanvasPanel

9 – DockPanel // rozmieszczenie przy krawędziach Lewy1 Lewy2 Góra1 Góra2 Dół1 Prawy1 DockPanel

10 – Grid // układ tabelaryczny, domyślny.................. // Margin gdy nie ma wypełnić całego pola GridPanel

11 – StackPanel// układ stosowy Button 1 Button 2 // Width, Height Auto // Alignments Stretch // adaptacja szerokości elementów // między MinWidth a MaxWidth StackPanel

12 – WrapPanel// stos z przewijaniem........ // Width, Height Auto // Alignments Stretch WrapPanel

13 menu, przyciski narzędzi, status..............

14 ..............

15 // private void AlfaME(object sender, MouseEventArgs e) { StatText.Text = "Alfa"; } MenuToolbarStatus

16 elementy sterujące Button, Ellipse, Expander Slider Lists FlowDocument TabControl ButElipExpa Przesuwka Lista F_Dokument Zakładki

17 wiązanie elementów sterujących // // Wiąz

18 style System.Window.Style // klasa stylu // dodać do klasy Application // styl nazwany <Style x:Key ="BigGreenButton " TargetType="Button">........

19 // dodać do klasy Window <Button x:Name="btnTestButton" Content="Jestem Stylowy" Cursor="Help" Style="{StaticResource BigGreenButton}" Width="250" />

20 // style anonimowe, wyzwalacze..... <Trigger Property = "IsFocused" Value = "True"> <Setter Property = "Background " Value = "Yellow"/> Styles

21 zasoby logiczne statyczne i dynamiczne // dodać plik zasobów ( BGB.xaml ) // Add/Resource Dictionary.....

22 // uzupełnić klasę Application // utworzyć element stosując Background= // nie można zmienić zasobu "{StaticResource BackgroundGradientBrush}" // lub Background= // można zmienić zasób "{DynamicResource BackgroundGradientBrush}" StatDynRes

23 zasoby graficzne włączane do pakietu SolutionExplorer / ProjectName / AddFolder Folder / Add Existing Item // doda ć pliki.jpg // // List images = new List (); images.Add(new BitmapImage( new Uri(@"/Images/A.jpg", UriKind.Relative))); int currImage = 0; // imageHolder.Source = images[currImage++]; GraphRes

24 polecenia standardowe // działają od razu <TextBox Name= " TextData " AcceptsReturn ="True" VerticalScrollBarVisibility="Auto " HorizontalScrollBarVisibility="Auto">

25 // dodać powiązania i obsługę <CommandBinding Command="ApplicationCommands.Open" Executed="OpenCmdExecuted" CanExecute="OpenCmdCanExecute"/>......

26 // dodać System.IO, Microsoft.Win32 private void OpenCmdCanExecute( object sender, CanExecuteRoutedEventArgs e) { e.CanExecute = true; } // private void OpenCmdExecuted( object sender, ExecutedRoutedEventArgs e) { OpenFileDialog openDlg = new OpenFileDialog(); if (openDlg.ShowDialog() == true) { string dataFromFile = File.ReadAllText(openDlg.FileName); TextData.Text = dataFromFile; }} PoleStand

27 generowanie obiektów graficznych – kształty ( Windows.Shapes ) proste figury 2D z interakcją – rysowanie i geometrie ( Windows.Media.Drawing ) bardziej złożona grafika raczej bez interakcji – obiekty wizualne ( Windows.Media.Visual ) przetwarzanie dużych ilości danych graficznych ( tylko C# )

28 Pędzle i pióra DrawingBrush, ImageBrush, LinearGradientBrush, RadialGradientBrush, SolidColorBrush, Pen // //

29 Shapes : Ellipse, Rectangle, Line, Polygon, Polyline, Path // Shape shapeToRender = new Line() { Stroke = Brushes.Blue, StrokeThickness = 10, X1 = 0, X2 = 50, Y1 = 0, Y2 = 50, StrokeStartLineCap = PenLineCap.Triangle, StrokeEndLineCap = PenLineCap.Round } Figury

30 Path set of Geometry Objects : LineGeometry, RectangleGeometry, EllipseGeometry,... <EllipseGeometry Center = "75,70" RadiusX = "30" RadiusY = "30" />

31 <BezierSegment Point1="100,0" Point3="300,100"/>..... // <Path Grid.Row="1" Stroke="Black" StrokeThickness="3" Data="M 10,75 C 70,15 250,270 300,175 H 240" /> // M – start, C – Bezier, H – linia pozioma,... Ścieżka

32 Transformacje MatrixTransform, RotateTransform, ScaleTransform, SkewTransform, TranslateTransform ( move ) Trans

33 Grupowanie i łączenie geometrii // // NonZero // // Intersect, Xor, Exclude DrawGeom

34

35 Rysowanie geometria + pędzel + pióro... // custom pen // custom brush... Draw

36 Obiekty wizualne i efekty DrawingVisual visual = new DrawingVisual(); DrawingContext dc = visual.RenderOpen(); // dc.DrawLine(), dc.DrawRectangle(), // dc.DrawRoundedRectangle(), dc.DrawText(), // dc.DrawEllipse() dc.Close(); // public class DrawingCanvas : Panel { private List visuals = new List (); public void AddVisual(Visual visual) { visuals.Add(visual); base.AddVisualChild(visual); base.AddLogicalChild(visual); } }

37 Blur DropShadow Basic dropshadow

38 DropShadow public class CustomEffect : ShaderEffect { public CustomEffect() { Uri pixelShaderUri = new Uri("Effect.ps", UriKind.Relative); PixelShader = new PixelShader(); PixelShader.UriSource = pixelShaderUri; } } VisusEfe

39 animacja using System.Windows.Media.Animation; ­ DataTypeAnimation ByteAnimation, ColorAnimation, DoubleAnimation, In32Animation,... ­ DataTypeAnimationUsingKeyFrames StringAnimationUsingKeyFrames, DoubleAnimationUsingKeyFrames, PointAnimationUsingKeyFrames,... ­ DataTypeAnimationUsingPath DoubleAnimationUsingPath, PointAnimationUsingPath,... Ani_1 Ani_2


Pobierz ppt "WINDOWS PRESENTATION FOUNDATION platforma tworzenia aplikacji okienkowych z bogatą warstwą prezentacji (.NET 3.0 ) rozdzielenie warstwy prezentacji (język."

Podobne prezentacje


Reklamy Google