C#+WPF模块化开发笔记系统实战课程

halhgkweit8888888 · · 165 次点击 · 开始浏览    置顶

C#+WPF模块化开发笔记系统实战课程 WPF是微软新一代图形系统,运行在.NET Framework 3.0及以上版本下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法。基于DirectX 9/10技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面,比如Vista中的半透明效果的窗体等都得益于WPF。 程序员在WPF的帮助下,要开发出媲美Mac程序的酷炫界面已不再是遥不可及的奢望。 WPF相对于Windows客户端的开发来说,向前跨出了巨大的一步,它提供了超丰富的.NET UI 框架,集成了矢量图形,丰富的流动文字支持(flow text support),3D视觉效果和强大无比的控件模型框架。 对于WPF最重要的特色,矢量图的超强支持 。兼容支持2D绘图,比如矩形、自定义路径,位图等。文字显示的增强,XPS和消锯齿。三维强大的支持。包括3D控件及事件,与2D及视频合并打造更立 体效果。渐变、使用高精确的(ARGB)颜色,支持浮点类型的像素坐标。这些对GDI+远远不及的。 灵活、易扩展的动画机制!.Net Framework 3.0类库提供了强大的基类,只需继承就可以实现自定义程序使用绘制。接口设计非常直观,完全面向对象的对象模型。使用对象描述语言XAML。使用开发工具的可视化编辑。 WPF可以运行在三种环境下面,如下: 1、 WPF桌面程序,此类型没有任何限制,可以是Windows可执行程序也可以是DLL动态链接库。 只需要.Net Framework 3.0以上版本支持即可! 2、 RIA分布式环境,服务器与客户端浏览器下载使用ActiveX插件方式解释执行的。微软更名为Silverlight,由于安全原因,微软提取精简版.Net Framework到Silverlight中独立运行,精简了很多类库。 3、浏览器承载的应用程序(称为 XAML 浏览器应用程序 (XBAP)),您可以创建能够使用超链接(Hyperlink 类)导航的页面 (Page) 和页函数 (PageFunction(Of (T)))。 WPF文件结构 在上一章,我们创建了一个WPF项目,一旦项目创建完成,Visual Studio会自动为我们生成一些基本的WPF应用程序代码和资源。在Solution Explorer窗口中,你可以看到包含MainWindow.xaml和App.xaml文件的项目文件夹。 MainWindow.xaml文件是WPF应用程序的主窗口,它包含了应用程序的用户界面。App.xaml文件是WPF应用程序的应用程序级别资源文件,它可以用于定义应用程序范围内的资源,如样式、模板和转换等。 打开MainWindow.xaml文件,你会看到一个可视化的编辑窗口和XAML文件的编辑窗口。我们可以向其中添加控件、布局和样式,以创建我们自己的用户界面。可以使用可视化的操作,也可以直接编写代码,通常是通过编写XAML代码来创建页面,在编辑XAML代码的时候,可视化编辑窗口也会实时显示当前页面的效果。 WPF程序的UI WPF的UI页面是用XAML语言编写的,这是一种标记标签语言,如果你学过XML或HTML,那么对XAML会很熟悉。XAML代码是放在后缀名为.xaml文件中的。WPF程序的主窗口是MainWindow.xaml文件,我们未来编写的主页面在这个文件中。 WPF布局过程 WPF布局包括两个阶段:一个测量(measure)阶段和一个排列(arrange)阶段。在测量阶段,容器遍历所有子元素,并询问子元素它们所期望的大小。在排列阶段,容器在合适的位置放置子元素。WPF布局可以理解为一个递归过程,它会递归对布局控件内的每个子元素进行大小调整,定位和绘制,最后进行呈现,直到递归所有子元素为止,这样也就完成了整个布局过程。 布局系统为每个子元素完成了两个处理过程:测量处理和排列处理。每个Panel都提供了自己的**MeasureOverride和ArrangeOverride**方法,以实现自己特定的布局行为。所以,你如果想自定义布局控件,也可以重新这两个方法来达到,关于自定义布局控件会在后面介绍到。![QQ截图20240625153427.png](https://static.golangjob.cn/240626/00ab82059a7810d9b0b955d7d17fc5de.png)

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

165 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传