1 / 106

C# Language Programming: WPF Application Basics

Learn the basics of creating WPF applications using XAML for designing interfaces, drawing graphics, and adding animations and multimedia.

wvargas
Download Presentation

C# Language Programming: WPF Application Basics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C#语言程序设计 郑宇军 《C#语言程序设计(第3版)》 清华大学出版社

  2. Windows界面 第8章 WPF应用程序基础

  3. 第8章 WPF应用程序基础 WPF窗体和控件 使用XAML设计界面 绘制图形 动画和多媒体

  4. 图形用户界面 媒体接口 User32 DirectX GDI+ Windows

  5. 图形用户界面 界面设计 Win32 WPF Win Form 媒体接口 User32 DirectX GDI+ Windows

  6. 图形用户界面 Windows Form WPF DirectX Windows Vista, 7, 8 物理尺寸相关 XAML 外观可定制 直接支持流媒体 System.Windows • GDI+ • Windows 2003, XP • dpi相关 • Code-behind • 外观固定 • 媒体播放借助插件 • System.Windows.Forms

  7. WPF窗体和控件 • 创建WPF程序

  8. WPF窗体和控件 • 窗体和布局 DispatcherObject DependencyObject Visual UIElement FrameworkElement Shape Control Panel

  9. WPF窗体和控件 • 窗体和布局 Panel StackPanel DockPanel Grid Canvas WrapPanel TabPanel UniformGrid

  10. WPF窗体和控件 • 窗体和布局 • StackPanel: 水平或垂直堆放

  11. WPF窗体和控件 • 窗体和布局 • StackPanel: 水平或垂直堆放 • WrapPanel: 单行/列, 自动换行

  12. WPF窗体和控件 • 窗体和布局 • StackPanel: 水平或垂直堆放 • WrapPanel: 单行/列, 自动换行 • DockPanel: 按方向停靠

  13. WPF窗体和控件 • 窗体和布局 • StackPanel: 水平或垂直堆放 • WrapPanel: 单行/列, 自动换行 • DockPanel: 按方向停靠 • Grid: 网格 • UniformGrid: 均匀网格

  14. WPF窗体和控件 • 窗体和布局 • StackPanel: 水平或垂直堆放 • WrapPanel: 单行/列, 自动换行 • DockPanel: 按方向停靠 • Grid: 网格 • UniformGrid: 均匀网格 • Canvas: 坐标位置

  15. WPF窗体和控件 • 控件内容模型 Control ContentControl Frame Label ToolTip Window HeaderedContentControl UserControl

  16. WPF窗体和控件 • 控件内容模型 • ContentControl.Content: object

  17. WPF窗体和控件 • 控件内容模型 Control ContentControl Frame Label ToolTip Window HeaderedContentControl UserControl

  18. WPF窗体和控件 • Window • 属性 • Title, Icon … • WindowState, WindowStyle … • TopMost, IsActive, ShowInTaskbar … • 事件 • Closing, Closed, Activated, Deactivated …

  19. WPF窗体和控件 • 控件内容模型 ContentControl ButtonBase Button ToggleButton GridViewColumnHeader RepeatButton CheckBox RadioButton

  20. WPF窗体和控件 • ButtonBase • ClickMode: Release, Press, Hover • Command, CommandParameter, CommandTarget • Click: RoutedEventHandler

  21. WPF窗体和控件 • 控件内容模型 Control ContentControl Frame Label ToolTip Window HeaderedContentControl UserControl

  22. WPF窗体和控件 • 控件内容模型 ContentControl HeaderedContentControl TabItem GroupBox Expander

  23. WPF窗体和控件 • 控件内容模型 • ContentControl.Content • HeaderedContentControl.Header

  24. WPF窗体和控件 • 控件内容模型 Control ItemsControl HeaderedItemsControl MenuBase Selector TreeView StatusBar ComboBox ListBox TabControl

  25. WPF窗体和控件 • ItemsControl • Items: ItemCollection • ItemsSource: IEnumerable public class ItemCollection { public object this[int index] { …… } }

  26. WPF窗体和控件 • 控件内容模型 Control ItemsControl HeaderedItemsControl MenuBase Selector TreeView StatusBar ComboBox ListBox TabControl

  27. WPF窗体和控件 • 控件内容模型 ItemsControl HeaderedItemsControl ToolBar MenuItem TreeViewItem

  28. WPF窗体和控件 • HeaderItemsControl • Header: object • Items, ItemsSource (继承)

  29. WPF窗体和控件 • 文本框控件 Control TextBoxBase PasswordBox TextBox RichTextBox

  30. WPF窗体和控件 • TextBoxBase • Copy(), Cut(), Paste() • Redo(), Undo() • LineUp(), LineDown(), LineLeft(), LineRight() • PageUp(), PageDown(), PageLeft(), PageRight()

  31. WPF窗体和控件 • 范围控件 Control RangeBase Slider ScrollBar ProgressBar

  32. WPF窗体和控件 • RangeBase • Value, Minimum, Maximum: double

  33. 使用XAML设计界面 WPF XAML XPS XAML XAML WF XAML SilverLight XAML

  34. 使用XAML设计界面 WPF XAML XPS XAML XAML WF XAML SilverLight XAML BAML

  35. 使用XAML设计界面 StartupUri="MainWindow.xaml" MainWindow.xaml App.xaml App.xaml.cs MainWindow.xaml.cs

  36. 使用XAML设计界面 XAML元素 .NET对象

  37. 使用XAML设计界面 编译器生成类 <Application x:Class="WpfContentExample.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="MainWindow.xaml"> ………… ………… </Application> • 根元素 • Application • Window • Page

  38. 使用XAML设计界面 命名元素 <TextBox Name="textBox1" Text="请在这里输入邮箱地址..." /> • 简单属性 • 属性值:文本描述 • 类型解析:TypeConverter

  39. 使用XAML设计界面 <Grid> <Grid.Background> <LinearGradientBrush> <GradientStop Offset='0' Color='Red' /> <GradientStop Offset='.5' Color='White' /> <GradientStop Offset='1' Color='Blue' /> </LinearGradientBrush> </Grid.Background> …… <Grid> • 复杂属性 • Parent.Property

  40. 使用XAML设计界面 <Grid> …… <Grid.RowDefinitions> <RowDefinition Height="50" /> <RowDefinition Height="Auto" /> <RowDefinition /> </Grid.RowDefinitions> <TextBox Name="textBox1" Text="请输入邮箱地址..." /> <Grid> 元素嵌套

  41. 使用XAML设计界面 <Grid> …… <Grid.RowDefinitions> <RowDefinition Height="50" /> <RowDefinition Height="Auto" /> <RowDefinition /> </Grid.RowDefinitions> <TextBox Name="textBox1" Text="请输入邮箱地址..." Grid.Row="1"/> <Grid> 附加属性

  42. 使用XAML设计界面 <Window.Resources> <LinearGradientBrush x:Key="lgBrush"> <GradientStop Offset='0' Color='Red' /> <GradientStop Offset='.5' Color='White' /> <GradientStop Offset='1' Color='Blue' /> </LinearGradientBrush> </Window.Resources> <Grid Background="{StaticResource lgBrush}"> …… </Grid> <TextBox Name="textBox1" Background="{StaticResourcelgBrush}"> 定义资源

  43. 使用XAML设计界面 <Window.Resources> <LinearGradientBrush x:Key="lgBrush"> <GradientStop Offset='0' Color='Red' /> <GradientStop Offset='.5' Color='White' /> <GradientStop Offset='1' Color='Blue' /> </LinearGradientBrush> </Window.Resources> <TextBox Name="textBox1" Background="{DynamicResourcelgBrush}"> • 定义资源 • 静态资源 • 动态资源

  44. 使用XAML设计界面 <Button.Resources> …… </Button.Resources> <Window.Resources> …… </Window.Resources> <Application.Resources> …… </Application.Resources> • 定义资源 • 控件资源 • 窗体/页面资源 • 应用程序资源

  45. 使用XAML设计界面 <ResourceDictionary> …… </ResourceDictionary> <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="res1.xaml" /> <ResourceDictionary Source="res2.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> …… </Application.Resources> • 定义资源 • 控件资源 • 窗体/页面资源 • 应用程序资源 • 资源字典

  46. 使用XAML设计界面 <Button Name="button1" Content="提交" Click="button1_Click" /> private void button1_Click(object sender, RoutedEventArgs e) { } 事件绑定

  47. 使用XAML设计界面 <Ellipse Name="ellipse1" Height="{Binding ElementName=slider1, Path=Value}" Width="{Binding ElementName=slider2, Path=Value}" Stroke="Black" Fill="Blue"/> • 表达式绑定 • ElementName • Path

  48. XAML基础 <Window.Resources> <FontFamily x:Key="ff1"> 黑体 </FontFamily> <FontWeight x:Key="fw1"> Bold</FontWeight> <FontSize x:Key="fs1"> 17 </FontSize> </Window.Resources> <Button Content="button1" FontFamily="{StaticResourceff1}" FontWeight="{StaticResourcefw1}" FontSize="{StaticResourcefs1}" /> 样式Style

  49. 使用XAML设计界面 <Style x:Key="Sty1"> <Setter Property="Control.FontFamily" Value="黑体" /> <Setter Property="Control.FontWeight" Value="Bold" /> <Setter Property="Control.FontSize" Value="17" /> </Style> <Button Content="button1" Style="{StaticResource Sty1}" /> • 样式Style • Setter: Property, Value

  50. 使用XAML设计界面 <Style x:Key="Sty1"> <Setter Property="Control.FontFamily" Value="黑体" /> <Setter Property="Control.FontWeight" Value="Bold" /> <Setter Property="Control.FontSize" Value="17" /> </Style> <Button Content="button1" Style="{StaticResource Sty1}" /> <Label Content="浙江工业大学" Style="{StaticResource Sty1}" /> • 样式Style • Setter: Property, Value

More Related