收藏 分享(赏)

《.NET高级编程》WPF和XAML.ppt

上传人:hwpkd79526 文档编号:10209579 上传时间:2019-10-20 格式:PPT 页数:54 大小:607KB
下载 相关 举报
《.NET高级编程》WPF和XAML.ppt_第1页
第1页 / 共54页
《.NET高级编程》WPF和XAML.ppt_第2页
第2页 / 共54页
《.NET高级编程》WPF和XAML.ppt_第3页
第3页 / 共54页
《.NET高级编程》WPF和XAML.ppt_第4页
第4页 / 共54页
《.NET高级编程》WPF和XAML.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

1、.NET高级编程 WPF和XAML,.NET高级编程课程组 2010-02,WPF介绍,WPF介绍 全称:Windows Presentation Foundation 是.NET Framework 3.0中三个主要扩展之一,另外两个是:LINQ 和WCF WPF是创建用户界面(UI)的一个新库 WPF是基于DirectX的 WPF内置了音频和视频的支持,WPF介绍,WPF介绍 WPF可以使设计人员和开发人员分开进行工作 WPF是基于XAML的,必须熟悉XAML XML for Application Markup Language WPF由几个程序集(.dll)组成,包含了上千个类(启动V

2、S2008新建一个WPF应用程序项目,查看XAML),XAML,XML for Application Markup LanguageXAML例1:,XAML,XAML例2:ButtonLabel,XAML和ASP.NET的源,体会一下XAML和ASP.NET的相似之处,Default.aspx无标题页,使用控制台来创建WPF程序,创建C#控制台应用程序 添加引用: WindowsBase PresentationCore PresentationFramework 添加名称空间: using System.Windows; using System.Windows.Controls;,使用控

3、制台来创建WPF程序,代码如下:STAThread /应用程序的 COM 线程模型是单线程单元 (STA)static void Main(string args)Window mainWindow = new Window();mainWindow.Title = “WPF Application“;Button button1 = new Button();mainWindow.Content = button1;button1.Content = “Click Me!“;Application app = new Application();app.Run(mainWindow);,使用

4、控制台来创建WPF程序,WPF编程与Window窗体编程很相似,但也有区别: button1.Content = “Click Me!“;/不是Text属性 最重要一点,Windows窗体编程是Form类,而WPF是System.Windows.Window类,XAML中的属性,属性作为特性,例如:属性用作元素,例如:LightBlueClick Me,XAML中的属性,附带属性,例如:Click Me,使用WPF的好处,设计人员和开发人员可以分工合作 传统Windows应用程序界面的设计往往直接由开发人员完成 如果有专业设计人员,也需要开发人员负责完成程序的界面 WPF允许开发人员和设计人员

5、使用相同的XAML各自独立完成工作 设计人员可以使用Expression Interactive Designer (EID)独立完成界面设计,常用的名称空间,System.Windows WPF的核心名称空间,包含了WPF的核心类,如Application类,用于依赖对象的类,所有WPF元素的基类FrameworkElement 等。 System.Windows.Controls 包含了所有WPF的控件类,如Button、Canvas、ComboBox、TreeView等。 System.Windows.Controls.Primitives 包含了比较复杂的控件,如ScrollBar、S

6、tatusBar等,常用的名称空间,System.Windows.Converters 包含了用于数据转换的类,但还有一部分数据转换的类在System.Windows中。 System.Windows.Data 由WPF数据绑定使用,其中一个重要的类是Binding类 System.Windows.Input 包含了用于命令处理、键盘输入等的类,常用的名称空间,System.Windows.Media 包含用于处理图像、音频和视频的类 System.Windows.Shapes 用户界面中的核心类位于这个名称空间下,如Line、Ellipse、Rectangle等 System.Windows

7、.Threading 包含了用于处理线程的类,Shapes名称空间,Shape(形状)是WPF程序的核心元素 利用形状,可以绘制线、椭圆、矩形、路径、多边形等二维图形,这些图形类都派生于抽象类Shape 名称空间是:System.Windows.Shapes,形状例子XAML代码,形状例子XAML代码,(接上页),形状例子XAML代码,这些图形都是矢量图,可以设定缩放比例而不失真,形状例子XAML代码,形状例子XAML代码,所有的按钮、线条等,都是可以通过编程方式来访问,可以用代码来控制它们的外观和行为 例如:字母M定义了路径的起点,字母Q指定了二次贝塞尔曲线的一个控制点和终点,形状例子XAM

8、L代码,添加代码: public Window1() InitializeComponent(); mouth.Data = Geometry.Parse(“M 62,125 Q 95,122 102,128“); ,形状例子XAML代码,形状例子XAML代码,按钮是可以包含任何内容的,可以把刚才所绘制的图形放到按钮上,加入如下代码:,形状例子XAML代码,按钮是可以包含任何内容的,可以把刚才所绘制的图形放到按钮上,加入如下代码:,形状类介绍,Line 在坐标x1,y1到x2,y2之间绘制一条直线 Rectangle 绘制矩形 Ellipse 绘制椭圆,形状类介绍,Path 可绘制一系列直线和

9、曲线 Polygon 绘制有线段连接而成的封闭图形 PolyLine 与Polygon类似,但不要求是封闭图形,控件,WPF中的控件是很多的,分类如下: 简单控件 内容控件 有标题的内容控件 项控件 有标题的项控件,简单控件,简单控件是没有Content属性的控件,例如Button控件可以包含任意图形、任意元素,简单控件则不可以。 PasswordBox 用于用户输入密码,可以不显示用户的输入 ScrollBar 滚动条控件,简单控件,ProgressBar 进度条控件 TextBox 文本框,用于显示简单的无格式文本 RichTextbox 支持带格式的文本显示,内容控件,内容控件有Cont

10、ent属性,例如Button控件 有了Content属性,就可以给控件添加任意内容 Button,RepeatButton,CheckBox,RadioButton 都派生于同一个基类ButtonBase 都可以响应Click事件,RepeatButton会重复响应Click事件 Label 文本标签,内容控件,Frame控件 支持导航,使用Navigate()方法可以导航到一个页面内容上,如果导航到网页,就是用浏览器来显示 ListBoxItem 是ListBox控件中的一个条目 StatusBarItem 是StatusBar空间中的一个条目 ScrollViewer 是包含滚动条的内容控

11、件,可以把任意内容放入这个控件,滚动条会在需要时自行显示,内容控件,Window 创建窗口和对话框。使用这个类,会获得一个带有“最小化/最大化/关闭按钮和系统菜单”的框架。可以使用ShowDialog()或Show()方法来显示这个窗口 思考: ShowDialog()与Show()有什么区别? NavigationWindow 派生于Window类,支持内容导航,内容控件,内容控件,请完成一个带标准按钮的浏览器程序,支持“后退/前进/刷新/到指定网站/返回主页/主页设定”等功能,有标题的内容控件,Header属性定义了标题的内容 Expander 默认情况下不显示所有信息,用户展开它后可以显

12、示更多的信息 GroupBox 提供了边框和标题来组合控件 TabItem 是TabControl类中的项。,有标题的内容控件,(省略了Window标签)Short informationMore information here!,有标题的内容控件,项控件,类ItemsControl包含了可以用Items属性访问的数据项。 Menu,ContextMenu 都派生于抽象基类MenuBase,提供菜单服务 思考:它们的区别 StatusBar 状态栏控件,可以吧StatusBarItem元素放入这个控件,项控件,TreeView 用于分级显示数据项的控件 ListBox,ComboBox 都用

13、相同的抽象基类Selector ListBox直接显示列表中的数据项 ComboBox有一个向下箭头按钮用于选择一项,带标题的项控件,MenuItem 菜单类Menu和ContextMenu中的的数据项 TreeViewItem TreeView中的数据项 ToolBar ToolBar是一组控件(通常是Button和Separator元素)的容器 可以将ToolBar放在ToolBarTray中,布局控件,为了定义应用程序的布局,可以使用派生自Panel基类中的类 StackPanel Window可以只包含一个元素作为其内容,如果要包含多个元素,可以将StackPanel控件作为Windo

14、w的一个子元素,然后在StackPanel添加想使用的元素 StackPanel是一个简单的容器控件,可以水平或垂直的显示,类ToolBarPanel派生于StackPanel,布局控件,StackPanel示例:LabelTextBlockTextBoxButtonCheckboxListBoxItem OneListBoxItem Two,布局控件,WrapPanel将子元素自左向右的排列,若一行排不下,则自动换行。也可以垂直排列。ButtonButtonButtonButtonButtonButtonButtonButton,布局控件,Canvas控件允许显示指定控件位置的容器Enter

15、 here:Click Me!,布局控件,DockPanel是带停靠功能的面板控件MenuToolbarStatus,布局控件,Left SideRemaining Part,布局控件,Grid控件可以在行和列中放置控件,类似于表格,布局控件,TitleFirstname:Lastname:,布局控件,事件处理,WPF同样可以处理鼠标、键盘等的事件,是基于.NET中的事件和委托机制ButtonUpButtonDownvoid OnButton1Click(object sender, RoutedEventArgs e)MessageBox.Show(“button 1“);,事件处理,事件处理,public Window1() InitializeComponent();button2.Click += new RoutedEventHandler(OnButton1Click); void OnButton1Click(object sender, RoutedEventArgs e) MessageBox.Show(“button 1“); ,WPF其他内容,命令处理 样式、模板和资源 动画 数据绑定 Windows窗体集成由于时间有限,请课下自行学习研究 参考所提供的代码,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报