第2章 WPF编程基础.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:142 大小:2.5MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第2章 WPF编程基础.ppt

第2章WPF编程基础.ppt

预览

免费试读已结束,剩余 132 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第二章WPF编程基础学习目的2.1Windows编程接口和类库2.2GDI和WPF和GDI相比WPF有如下优点:和DirectX采用相同技术,统一了微软各种图形类库。引入了XAML界面标记语言,将界面设计和编写代码分开,方便设计。支持2D和3D图形、动画、视频及音频回放。可以和GDI模型互操作。包括XML文件规范(XPS)文档、固定文档(WYSIWYG)、流文档和文档注释等多种文档处理模型。WPF控件使用增强型数据绑定引擎,支持多种内容到WPF控件的绑定。WPF控件使用矢量图形,自适应不同分辨率显示器。支持多种布局管理器,WinForm只有很少几种。2.3TextBlock、Label和Button控件Label控件显示内容用属性Content记录,因此显示内容不但可以是字符串,也可以是复杂数据对象,但占用较多资源,如果仅显示字符串,还是使用TextBlock控件较好。使用Button控件,可以在窗体中增加按钮,用户单击按钮,触发单击按钮事件,自动调用单击按钮事件处理函数,完成指定的工作。Button控件常用属性和事件如下:属性Content:按钮标题内容属性IsDefault:是否是默认按钮,如是默认按钮,键入回车键相当于单击该按钮。属性IsCancel:是否是"取消"按钮,如是"取消"按钮键入ESC键相当于单击该按钮。事件Click:用户单击按钮触发的事件,一般称作按钮单击事件。2.4WPF控件通用属性Width、Height、ActualWidth和ActualHeight:控件的宽、高、实际宽和高。如果Margin属性的4个边距都不为0,实际宽、高可能和宽、高不同。Margin:控件距离其所在容器的左边、上边、右边和下边的距离。HorizontalAlignment:在水平方向子控件相对于容器左边还是右边对齐。VerticalAlignment:在垂直方向子控件相对于容器上边还是下边对齐。ToolTip:当鼠标在控件上停留一段时间后,会在旁边出现提示字符串。IsEnabled:布尔变量为true表示控件可使用,为false表示不可用,控件变灰色。Visibility:为Visible控件正常显示,为Hidden或Collapsed控件不可见。Cursor:鼠标移到控件上方时,鼠标显示的形状。2.5WPF程序基本结构【例2.2】本例用C#代码创建一个简单的WPF应用程序,在窗体中增加了一个按钮(Button)控件,并为单击按钮事件增加事件处理函数,单击按钮退出程序。namespacee4_1{classWindow1:Window{privateButtonbutton1=newButton();publicWindow1(){Title="不使用VS2008创建的WPF程序";WindowStartupLocation=WindowStartupLocation.CenterScreen;Height=200;This.Width=300;button1.Click+=newRoutedEventHandler(button1_Clicked);button1.Height=25;button1.Width=100;button1.Content="退出程序";AddChild(button1);Show();}privatevoidbutton1_Clicked(objectsender,RoutedEventArgse){Application.Current.Shutdown();}[STAThread]staticvoidMain(){Applicationap=newApplication();ap.Run(newWindow1());}}}请注意步骤:首先定义Button类变量button1,这是Window1类的一个字段,由于主窗体关闭程序也就结束了,因此变量button1的生命周期和程序的生命周期是相同的。第二步在构造函数中用new生成Button类对象第三步在构造函数中修改button1的属性第四步增加button1的事件处理函数。2.6Application类和Window类【例2.3】本例用C#代码创建一个简单的WPF应用程序如下,退出程序显示对话框。usingSystem;usingSystem.Windows;usingSystem.Windows.Controls;namespaceSimpleWPFApp{classMyWPFApp:Application{[STAThread]staticvoidMain(){MyWPFAppapp=newMyWPFApp();app.