Windows Presentation Foundation

2,886 views

Published on

windows presentation foundation

Published in: Technology, Sports
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,886
On SlideShare
0
From Embeds
0
Number of Embeds
414
Actions
Shares
0
Downloads
245
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Windows Presentation Foundation

  1. 1. Lê Quý Lộc http://loclq.wordpress.com 28/09/2008
  2. 2. Nội Dung <ul><li>Trở ngại của hệ thống giao diện hiện tại </li></ul><ul><li>WPF là gì ? </li></ul><ul><li>WPF giải quyết các vấn đề này như thế nào ? </li></ul><ul><li>XAML là gì ? </li></ul><ul><li>Layouts, controls, templates, styles & resources </li></ul><ul><li>Content controls </li></ul><ul><li>Thuộc tính phụ thuộc (dependency properties) </li></ul><ul><li>Routed events </li></ul><ul><li>Data binding </li></ul><ul><li>Animation và multimedia </li></ul><ul><li>Đồ họa 2D, 3D và hình ảnh </li></ul><ul><li>Documents </li></ul><ul><li>Tham Khảo </li></ul>
  3. 3. <ul><li>Nhiều công nghệ được sử dụng để tạo ra một ứng dụng </li></ul><ul><ul><li>Windows Forms </li></ul></ul><ul><ul><li>PDF </li></ul></ul><ul><ul><li>GDI+ </li></ul></ul><ul><ul><li>Windows Media Player </li></ul></ul><ul><ul><li>DirectX </li></ul></ul><ul><ul><li>Flash </li></ul></ul><ul><li>Lập trình viên và đồ họa viên không thể làm việc chung với nhau </li></ul><ul><li>Không dùng cùng một công nghệ trong việc phát triển ứng dụng Windows và Web </li></ul>Trở Ngại Của Hệ Thống Giao Diện Hiện Tại
  4. 4. WPF Là Gì ? Là một công nghệ hợp nhất và mạnh mẽ để xây dựng UI, media và documents Sử dụng toàn bộ .NET Framework để xây dựng hệ thống giao diện Giao diện không phục thuộc vào độ phân giải của màn hình
  5. 5. WPF Là Gì ? Application Services Deployment Services Databinding USER INTERFACE SERVICES XAML Accessibility Property System Input & Eventing BASE SERVICES DOCUMENT SERVICES Packaging Services XPS Documents Animation 2D 3D Audio Imaging Text Video Effects Composition Engine MEDIA INTEGRATION LAYER Controls Layout Windows Presentation Foundation XPS Viewer
  6. 6. WPF Là Gì ?
  7. 7. <ul><li>Hợp nhất các APIs của các công nghệ khác nhau </li></ul><ul><ul><li>Audio và video </li></ul></ul><ul><ul><li>Vẽ </li></ul></ul><ul><ul><li>Animation </li></ul></ul><ul><ul><li>Tài liệu </li></ul></ul><ul><li>Cho phép lập trình viên và đồ họa viên làm việc được với nhau </li></ul><ul><li>Sử dụng cùng một công nghệ để xây dựng ứng dụng Windows và Web </li></ul>WPF Giải Quyết Các Vấn Đề Này Như Thế Nào ?
  8. 8. WPF Giải Quyết Các Vấn Đề Này Như Thế Nào ? Unified WPF API Documents User Interface Media DirectX GDI GDI+ Media Player HTML HTML Word PDF Win Forms Web Forms MFC VB Forms
  9. 9. XAML Là Gì ? XAML = Extensible Application Markup Language <ul><li>Trông giống như XML hoặc HTML </li></ul><ul><li>Cho phép UI được thiết kế bằng ngôn ngữ dựa trên ngôn ngữ đánh dấu </li></ul><ul><li>XAML và mã cùng tồn tại </li></ul><ul><li>Vẽ được cả trong browser và Windows </li></ul><Button Width=&quot;100&quot;> OK <Button.Background> LightBlue </Button.Background> </Button> XAML Button b1 = new Button(); b1.Content = &quot;OK&quot;; b1.Background = new SolidColorBrush(Colors.LightBlue); b1.Width = 100; C# Dim b1 As New Button b1.Content = &quot;OK&quot; b1.Background = New _ SolidColorBrush(Colors.LightBlue) b1.Width = 100 VB.NET
  10. 10. <ul><li>Layouts: canvas, dockpanel, stackpanel, grid, wrappanel </li></ul><ul><li>Controls: Button, Checkbox, ComboBox, ContextMenu, GridView, GroupBox, Image, Label, ListView, ListBox, Menu, Panel, Popup, DocumentViewer,… </li></ul><ul><li>Styles và Resources: khai báo một lần và dùng trong toàn bộ chương trình </li></ul><ul><li>Templates </li></ul>Layouts, Controls, Templates, Styles & Resources
  11. 11. Layouts, Controls, Templates, Styles & Resources
  12. 12. Content Controls
  13. 13. Content Controls <ul><li>Là những controls có thể chứa các elements khác </li></ul><ul><li>Ứng dụng: để tạo ra button hoặc label đẹp hơn, … </li></ul>
  14. 14. <ul><li>Nhiều thuộc tính cho mỗi control, không thể nào chỉnh giá trị của các tất cả thuộc tính cho tất cả controls </li></ul><ul><li>Chúng ta muốn đặt giá trị thuộc tính một lần, và dùng cho tất cả lần sau </li></ul><ul><li>Đặc điểm </li></ul><ul><ul><li>Có thể thực thi một tác vụ nào đó khi thuộc tính đổi giá trị </li></ul></ul><ul><ul><li>Thừa kế giá trị thuộc tính </li></ul></ul>Thuộc Tính Phụ Thuộc
  15. 15. Routed Events <ul><li>Sự kiện không chỉ xảy ra trực tiếp trên object nhận sự kiện, mà còn truyền đến những object là cha của nó </li></ul>
  16. 16. Data Binding <StackPanel> <Label>Select A Customer</Label> <ListBox Name=&quot;myListBox&quot; Background=&quot;HoneyDew&quot; ItemsSource=&quot;{Binding {StaticResource myDataSource}}&quot; </ListBox> </StackPanel> <ul><li>OneWay: thay đổi ở source tự động cập nhật ở target, nhưng ngược lại thì không </li></ul><ul><li>TwoWay: thay đổi ở source tự động cập nhật ở target, và ngược lại </li></ul><ul><li>OneWayToSource: ngược với OneWay </li></ul>Binding Target Binding Source Dependency Object Object Dependency Property Property TwoWay OneWay OneWayToSource
  17. 17. <ul><li>Transform: </li></ul><ul><ul><li>Thay đổi hình dạng, vị trí của các elements </li></ul></ul><ul><ul><li>Thường được dùng trong animation </li></ul></ul><ul><li>Animation </li></ul><ul><ul><li>Cơ chế hoạt hình dựa trên thời gian </li></ul></ul>Animation và Multimedia <EventTrigger RoutedEvent=&quot;Canvas.Loaded&quot;> <BeginStoryboard> <Storyboard x:Name=&quot;Ski&quot;> <DoubleAnimationUsingKeyFrames BeginTime=&quot;00:00:00&quot; Storyboard.TargetName=&quot;Canvas3&quot; Storyboard.TargetProperty=&quot;(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)&quot;> <SplineDoubleKeyFrame KeyTime=&quot;00:00:00&quot; Value=&quot;0.2&quot;/> <SplineDoubleKeyFrame KeyTime=&quot;00:00:02&quot; Value=&quot;0.3&quot;/> <SplineDoubleKeyFrame KeyTime=&quot;00:00:03&quot; Value=&quot;0.4&quot;/> <SplineDoubleKeyFrame KeyTime=&quot;00:00:05&quot; Value=&quot;0.4&quot;/> <SplineDoubleKeyFrame KeyTime=&quot;00:00:06&quot; Value=&quot;0.5&quot;/> <SplineDoubleKeyFrame KeyTime=&quot;00:00:07&quot; Value=&quot;0.6&quot;/> <SplineDoubleKeyFrame KeyTime=&quot;00:00:08&quot; Value=&quot;0.7&quot;/> <SplineDoubleKeyFrame KeyTime=&quot;00:00:08.3000000&quot; Value=&quot;-0.7&quot;/> <SplineDoubleKeyFrame KeyTime=&quot;00:00:09&quot; Value=&quot;-0.8&quot;/> <SplineDoubleKeyFrame KeyTime=&quot;00:00:10&quot; Value=&quot;-1&quot;/> <SplineDoubleKeyFrame KeyTime=&quot;00:00:11&quot; Value=&quot;-2&quot;/> <SplineDoubleKeyFrame KeyTime=&quot;00:00:12&quot; Value=&quot;-3&quot;/> </DoubleAnimationUsingKeyFrames>
  18. 18. Animation và Multimedia <Border Width=&quot;400&quot; BorderBrush=&quot;Green&quot; BorderThickness=&quot;9&quot;> <StackPanel> <MediaElement Source=&quot;aero.wmv&quot; /> <Button>Hello</Button> </StackPanel> </Border> <ul><li>Formats: WMV, MPEG, Some AVIs </li></ul><ul><li>Có thể thêm animations vào trong audio hoặc video </li></ul>
  19. 19. <ul><li>Những thành phần liên quan đến đồ họa trong WPF </li></ul><ul><ul><li>Brushes: dùng lớp Brush để tô các vùng theo màu, patterns, hoặc hình ảnh </li></ul></ul><ul><ul><li>Shapes: dùng lớp Shape để vẽ các hình dạng 2-D </li></ul></ul><ul><ul><li>Imaging: dùng lớp Imaging để đọc, xử lý và hiển thị hình ảnh </li></ul></ul><ul><ul><li>Geometries: cũng để thao tác trên hình dạng 2-D, nhưng cho phép vẽ được nhiều loại hình dạng hơn Shape </li></ul></ul>Đồ Họa 2D, 3D Và Hình Ảnh
  20. 20. <ul><li>Transformations: dùng lớp Transform to để xoay, thay đổi vị trí, kích thước của geometries, visuals, brushes, framework elements, và controls. </li></ul><ul><li>Animations: dùng API của lớp Animation và Timing để làm cho đối tượng thay đổi màu sắc, vị trí, kích thước, … </li></ul><ul><li>Visuals: chính là hệ thống đồ họa của Windows Presentation Foundation. Tất cả những đối tượng WPF sử dụng Visuals để vẽ ra màn hình </li></ul><ul><li>Đồ họa 3-D: namespace System.Windows.Media.Media3D defines định nghĩa các thao tác trên đồ họa 3D </li></ul>Đồ Họa 2D, 3D Và Hình Ảnh
  21. 21. <ul><li>FlowDocumentReader: là class để thao tác trên các document động: xem document trên máy tính </li></ul><ul><li>XpsDocument: là class để thao tác trên document tỉnh, để in ra bằng máy in </li></ul>Documents
  22. 22. <ul><li>MSDN </li></ul><ul><li>www.windowsclient.net </li></ul><ul><li>Pro WPF in C# 2008 - Matthew MacDonald </li></ul><ul><li>www.thewpfblog.com </li></ul><ul><li>Microsoft Expression Blend: www.microsoft.com/expression </li></ul>Tham Khảo

×