logo资料库

wpf经典教程.pdf

第1页 / 共83页
第2页 / 共83页
第3页 / 共83页
第4页 / 共83页
第5页 / 共83页
第6页 / 共83页
第7页 / 共83页
第8页 / 共83页
资料共83页,剩余部分请下载后查看
本文来自网络,由大胡子制作.版权归原作者所有.如果你有 wpf 的好资料可以联系我 QQ:249872349,Email:BigBeard@126.com 目录 WPF 体系结构 .......................................................................................................................................................... 3 WPF 应用程序管理 .................................................................................................................................................. 5 一、WPF 应用程序由 System.Windows.Application 类进行管理 ................................................................. 5 二、创建 WPF 应用程序 ................................................................................................................................. 5 三、应用程序关闭 ........................................................................................................................................... 6 四、Application 对象的事件 ........................................................................................................................... 7 五、WPF 应用程序生存周期 .......................................................................................................................... 9 WPF 窗体 ................................................................................................................................................................ 10 一、窗体类 ..................................................................................................................................................... 10 1、XAML 文件....................................................................................................................................... 10 2、后台代码文件 ................................................................................................................................... 10 二、窗体的生存周期 ......................................................................................................................................11 1、显示窗体 ............................................................................................................................................11 2、关闭窗体 ........................................................................................................................................... 12 3、窗体的激活 ....................................................................................................................................... 12 4、窗体的生存周期 ............................................................................................................................... 12 三、其他窗体相关的属性、方法、事件 ..................................................................................................... 15 四、定义异形窗体 ......................................................................................................................................... 16 StackPanel、WrapPanel、DockPanel 容器 .......................................................................................................... 19 一、StackPanel ............................................................................................................................................... 19 1、可以使用 Orientation 属性更改堆叠的顺序 ................................................................................... 19 2、设置控件的属性,调整控件的显示................................................................................................ 20 二、WrapPanel ................................................................................................................................................ 20 三、DockPanel ................................................................................................................................................ 21 Grid UniformGrid 容器 ........................................................................................................................................ 22 一、Grid .......................................................................................................................................................... 22 二、使用 GridSplit 分割 ................................................................................................................................ 23 三、UniformGrid ............................................................................................................................................ 25 Canvas、InkCanvas 布局 ....................................................................................................................................... 27 一、Canvas ..................................................................................................................................................... 27 二、InkCanvas ................................................................................................................................................ 27 WPF 对控件其类型的继承方式如下 .................................................................................................................... 29 WPF 控件内容模型 ................................................................................................................................................ 32 一、ContentControl 模型 ............................................................................................................................... 35 二、HeaderedContentControl 模型 ................................................................................................................ 36 三、ItemsControl 模型 ................................................................................................................................... 38 1、使用 ItemSource 属性 ....................................................................................................................... 38 2、使用 Items 属性 ................................................................................................................................ 40 四、HeaderedItemsControl 模型 .................................................................................................................... 42 Panel Decorator TextBlock 内容模型 .................................................................................................................. 44 一、Panel 内容模型 ....................................................................................................................................... 44
本文来自网络,由大胡子制作.版权归原作者所有.如果你有 wpf 的好资料可以联系我 QQ:249872349,Email:BigBeard@126.com 二、Decorator 内容模型 ................................................................................................................................ 45 三、TextBlock 模型 ........................................................................................................................................ 46 四、TextBox 模型 ........................................................................................................................................... 49 依赖项属性和路由事件 ......................................................................................................................................... 50 一、依赖项属性(Dependency Property ....................................................................................................... 50 1、依赖项属性与 CLR 包装属性 ......................................................................................................... 50 2、使用由依赖项属性提供的属性功能................................................................................................ 51 3、自定义依赖项属性及重写依赖项属性 ............................................................................................ 52 二、路由事件(RoutedEvent)..................................................................................................................... 53 键盘输入、鼠标输入、焦点处理 ......................................................................................................................... 56 一、键盘类和键盘事件 ................................................................................................................................. 56 二、鼠标类和鼠标事件 ................................................................................................................................. 57 三、焦点处理 ................................................................................................................................................. 60 1、键盘焦点: ....................................................................................................................................... 60 2、逻辑焦点 ........................................................................................................................................... 61 3、键盘导航 ........................................................................................................................................... 61 4、焦点事件 ........................................................................................................................................... 61 WPF 命令 ................................................................................................................................................................ 63 一、命令: ..................................................................................................................................................... 64 二、命令源 ..................................................................................................................................................... 65 三、命令目标 ................................................................................................................................................. 66 四、命令绑定 ................................................................................................................................................. 67 WPF 资源 ................................................................................................................................................................ 70 一、什么是资源 ............................................................................................................................................. 70 二、资源的定义及 XAML 中引用 ................................................................................................................ 70 三、XAML 解析资源的顺序 ......................................................................................................................... 74 四、静态资源(StaticResource)和动态资源(DynamicResource) ........................................................ 77 五、不同类型的资源 ..................................................................................................................................... 81 1、程序集资源。 ................................................................................................................................... 81 2、对象资源 ........................................................................................................................................... 82
本文来自网络,由大胡子制作.版权归原作者所有.如果你有 wpf 的好资料可以联系我 QQ:249872349,Email:BigBeard@126.com WPF 体系结构 WPF 的基础的体系结构,所引用的 Assembly 如下图所示: 关系图中的 PresentationFramework、PresentationCore 和 milcore 是 WPF 的主要 代码部分。在这些组件中,只有一个是非托管组件 – milcore。milcore 是以非托管代码编 写的,目的是实现与 DirectX 的紧密集成。WPF 中的所有显示是通过 DirectX 引擎完成 的,可实现高效的硬件和软件呈现。WPF 还要求对内存和执行进行精确控制。milcore 中 的组合引擎受性能影响关系大,需要放弃 CLR 的许多优点来提高性能。 在 WPF 中常用的的控件类继承结构如下图所示:
本文来自网络,由大胡子制作.版权归原作者所有.如果你有 wpf 的好资料可以联系我 QQ:249872349,Email:BigBeard@126.com System.Object 类:在.Net 中所有类型的根类型 System.Windows.Threading.DispatcherObject 类:WPF 中的大多数对象是从 Dispa tcherObject 派生的,这提供了用于处理并发和线程的基本构造。WPF 基于调度程序实现 的消息系统。 System.Windows.DependencyObject 类:表示一个参与依赖项属性系统的对象。 System.Windows.Media.Visual 类:为 WPF 中的呈现提供支持,其中包括命中测试、坐 标转换和边界框计算。 System.Windows.UIElement 类:UIElement 是 WPF 核心级实现的基类,该类建立在 Windows Presentation Foundation (WPF) 元素和基本表示特征基础上。 System.Windows.FrameworkElement 类:为 Windows Presentation Foundation (WPF) 元素提供 WPF 框架级属性集、事件集和方法集。此类表示附带的 WPF 框架级实 现,它是基于由 UIElement 定义的 WPF 核心级 API 构建的。 System.Windows.Controls.Control 类:表示 用户界面 (UI) 元素的基类,这些元素使 用 ControlTemplate 来定义其外观。 System.Windows.Controls.ContentControl 类:表示包含单项内容的控件。 System.Windows.Controls.ItemsControl 类:表示一个可用于呈现项的集合的控件。 System.Windows.Controls.Decorator 类:提供在单个子元素(如 Border 或 Viewbo x)上或周围应用效果的元素的基类。 System.Windows.Controls.Image 类:表示显示图像的控件。 System.Windows.Controls.MediaElement 类:表示包含音频和/或视频的控件。 System.Windows.Controls.Panel 类:为所有 Panel 元素提供基类。使用 Panel 元素 在 Windows Presentation Foundation (WPF) 应用程序中放置和排列子对象。 System.Windows.Sharps.Sharp 类:为 Ellipse、Polygon 和 Rectangle 之类的形状 元素提供基类。 详细的有关 WPF 的控件类及其使用请参考 MSDN 文档。
本文来自网络,由大胡子制作.版权归原作者所有.如果你有 wpf 的好资料可以联系我 QQ:249872349,Email:BigBeard@126.com WPF 应用程序管理 一、WPF 应用程序由 System.Windows.Application 类进行管理 无内容. 二、创建 WPF 应用程序 创建 WPF 应用程序有两种方式: 1、Visual Studio 和 Expression Blend 默认的方式,使用 App.xaml 文件定义启动应用 程序 App.xaml 文件的内容大致如下: 1: 5: 6: 7: 其中 StartupUri 指定启动的 WPF 窗体 2、可以自已定义类,定义 Main 方法实现对 WPF 应用程序的启动 在项目中添加一个类,类的代码如下,在项目选项中,设定此类为启动项。 1: using System; 2: using System.Windows; 3: 4: namespace WpfApplicationLifeCycle 5: { 6: public class MainClass 7: { 8: [STAThread] 9: static void Main() 10: { 11: // 定义 Application 对象 12: Application app = new Application();
本文来自网络,由大胡子制作.版权归原作者所有.如果你有 wpf 的好资料可以联系我 QQ:249872349,Email:BigBeard@126.com 13: 14: // 方法一:调用 Run 方法,参数为启动的窗体对象 15: Window2 win = new Window2(); 16: app.Run(win); 17: 18: // 方法二:指定 Application 对象的 MainWindow 属性为启动窗体, 调用无参数的 Run 方法 19: //Window2 win = new Window2(); 20: //app.MainWindow = win; 21: //win.Show(); // 此处必须有 win.Show(),否则不能 显示窗体 22: //app.Run(); 23: 24: // 方法三: 25: //app.StartupUri = new Uri("Window2.xaml", UriKind.R elative); 26: //app.Run(); 27: } 28: } 29: } 三、应用程序关闭 应用程序关闭时的策略由 ShutdownMode 属性指定,其类型为 System.Window s.ShutdownMode 枚举类型,其枚举成员有: OnLastWindowClose(默认值):当应用程序中的最后一个窗体关闭时或调用 Applic ation 对象的 Shutdown()方法时,应用程序关闭; OnMainWindowClose:当主窗体(即启动窗体)关闭时或调用 Application 对象的 S hutdown()方法时,应用程序关闭。(类似于 C#的 Windows 应用程序的关闭模式); OnExplicitShutdown:只有在调用 Application 对象的 Shutdown()方法时,应用 程序才会关闭; 更改的时候,可以直接在 App.xaml 中更改:
本文来自网络,由大胡子制作.版权归原作者所有.如果你有 wpf 的好资料可以联系我 QQ:249872349,Email:BigBeard@126.com 1: 6: 7: 8: 也可以在代码文件(App.xaml.cs)中更改 1: Application app = new Application(); 2: Window2 win = new Window2(); 3: 4: // 更改关闭模式必须要在调用 app.Run()方法之前 5: app.ShutdownMode = ShutdownMode.OnExplicitShutdown; 6: app.Run(win); 四、Application 对象的事件 名称 说明 Activated Deactivated 当应用程序成为前台应用程序时发生。 当应用程序停止作为前台应用程序时发生。 DispatcherUnhandledException 在异常由应用程序引发但未进行处理时发生。 Exit 恰好在应用程序关闭之前发生,且无法取消。 FragmentNavigation LoadCompleted Navigated Navigating NavigationFailed NavigationProgress 当应用程序中的导航器开始导航至某个内容片断时发生, 如果所需片段位于当前内容中,则导航会立即发生;或者, 如果所需片段位于不同内容中,则导航会在加载了源 XAML 内容之后发生。 在已经加载、分析并开始呈现应用程序中的导航器导航到 的内容时发生。 在已经找到应用程序中的导航器要导航到的内容时发生, 尽管此时该内容可能尚未完成加载。 在应用程序中的导航器请求新导航时发生。 在应用程序中的导航器在导航到所请求内容时出现错误 的情况下发生。 在由应用程序中的导航器管理的下载过程中定期发生,以 提供导航进度信息。
本文来自网络,由大胡子制作.版权归原作者所有.如果你有 wpf 的好资料可以联系我 QQ:249872349,Email:BigBeard@126.com NavigationStopped SessionEnding 在调用应用程序中的导航器的 StopLoading 方法时发 生,或者当导航器在当前导航正在进行期间请求了一个新 导航时发生。 在用户通过注销或关闭操作系统而结束 Windows 会话 时发生。 Startup 在调用 Application 对象的 Run 方法时发生。 应用程序的事件处理可以: 1、在 App.xaml 中做事件的绑定,在 App.xaml.cs 文件中添加事件的处理方法 在 App.xaml 文件中: 1: 6: 7: 8: 在 App.xaml.cs 文件中: 1: using System.Windows; 2: 3: namespace WpfApplicationLifeCycle 4: { 5: /// 6: /// Interaction logic for App.xaml 7: /// 8: public partial class App : Application 9: { 10: private void Application_Startup(object sender, Startup EventArgs e) 11: { 12: // 定义应用程序启动时要处理的内容 13: } 14: } 15: } 2、在自定义的类中可以做正常的 C#的事件绑定: 1: [STAThread] 2: static void Main() 3: {
分享到:
收藏