认识WPF

摘要:
新开一节WPF桌面开发的讲解,这节先初步认识一下什么是WPF。另外,WPF还具有强大的图形绘制功能,以及自带MVVM框架,有关MVVM相关的知识点会在后续的文章中发布。目前,WPF广泛应用于各种桌面应用程序的开发中,VisualStudio也是基于WPF开发的,未来随着IOT的兴起,WPF有着很广泛的前景。

新开一节WPF桌面开发的讲解,这节先初步认识一下什么是WPF。

1.简介

WPF是 Windows Presentation Foundation 的英文缩写,意为“窗体呈现基础”,是微软基于.NET Framework 3.0 推出的新一代构建窗体程序的框架。不同于WinForm,WPF实现了界面和开发分离,它的界面是由Xaml语言构建的,这种形式对前端开发人员非常友好,使初步进入WPF页面开发的前端开发人员可以很轻松的上手并开发出绚丽的界面(并且还有一个UI编辑利器:VS Blend来辅助界面的开发)。另外,WPF还具有强大的图形绘制功能,以及自带MVVM框架,有关MVVM相关的知识点会在后续的文章中发布。

目前,WPF广泛应用于各种桌面应用程序的开发中,VisualStudio也是基于WPF开发的,未来随着IOT的兴起,WPF有着很广泛的前景。

2.初探代码

打开VS,我们搜索WPF,新建一个WPF项目:

认识WPF第1张

搜索WPF会出现很多相关选项,主要是底层框架(.NET Framework,.NET Core,.NET)的不同,这里我们选择WPF App(.NET Framework)这一个项目为例。

认识WPF第2张

一般开发中,如果考虑到客户的Windows版本不同,应该视情况降低框架版本(就像一些客户甚至还在用XP,XP系统就无法安装4.x的.NET Framework),此处我们默认选择4.7.2就好。

建好项目后,我们可以在解决方案浏览器中看到如下结构:

认识WPF第3张

Properties存着一些底层的属性文件,如程序集信息,资源表等;

References用于添加项目依赖包;

App.config用于存储一些配置信息,在程序运行时可以动态的读取这些信息;

App.xaml是整个项目的xmal文件,熟悉asp.net core的同学可以将这个文件理解为View/share文件夹下的_layout文件,在这个文件中编写的一些逻辑会应用到整个程序中,而且与WinForm不同的是,项目的启动页面是在这样文件中配置,就是下图所示的StartupUri属性:

认识WPF第4张

MainWindow.xaml文件就是一个单纯的WPF窗体界面,我们可以将其展开,就成了一个.xaml文件和.cs文件:

认识WPF第5张

我们先打开MainWindow.xaml,初始代码如下:

认识WPF第6张

这种结构,很形象的解释了各种控件的包含关系,我们所有的代码都要写在Window中。

Window标签有一些属性下面来解释一下:

x:Class 类名,指示跟哪个类绑定;

​xmlns属于当前页面的命名空间,用于引入一些用到的代码,如外部自定义的控件,​类型转换器等;

​剩下的是一些窗体的显示属性,以及一些事件绑定属性,这跟html一样,此处不再赘述;

​在打开MainWindow.xaml.cs文件看​一下:

认识WPF第7张

​所有的窗体都要继承Window类,在构造器中我们可以看到一个方法,这个方法是.xaml页面给的用于初始化控件​。初始界面很简单,到此就给大家解释完毕了,我们下节再见。

认识WPF第8张

免责声明:文章转载自《认识WPF》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【python】threadpool的内存占用问题Javascript 异步加载详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WPF默认控件模板的获取和资源词典的使用

一、获取默认的控件模板WPF修改控件模板是修改外观最方便的方式,但是会出现不知道原来的控件的模板长什么样,或者想用来参考的,下面分享一下获取某控件默认控件模板的方式(已Button为例): 1、创建一个Button 2、在界面上选择Button,右键->编辑模板->编辑副本 ,即可看到XAML中自动生成了原始的控件模板 3、可以在默认模板上修改...

winform(三)——更换主窗体例子

做一个登录窗口,登录成功时关闭form1,展示from2界面 1.主界面Login namespace WindowsFormsApplication1 { public partial class Login : Form { public string username;//定义一个变量给子窗体传值...

Winform布局开源框架,Winform控件框架,插件化框架

  什么是Winform框架?   Winform框架是基于.NET开发平台研发的用于快速开发软件项目的软件模板或开发平台,常用的程序语言有C#.NET, VB.NET。   通常Winform框架界面组件使用第三方控件,如:DevExpress,该控件功能强调,用户体验友好。 若全部采用.NET原生组件,开发效率低,界面不美观,用户体验差,特别是基于数...

如何让窗口显示在电脑屏幕中间

按照delphi程序默认设计出的程序预览的时候自动显示在桌面的左上方,或者就是设计时窗口的位置,这样显示很乱,视觉感觉不好,如何让自动显示到中间呢? 1,程序position默认属性是poDefaultPosOnly. 2,默认效果如下: 实现居中显示效果方法如下: 第一种:通过属性设置: 1,选中需要设置的窗体,在属性里面找到 position, 下...

Qt设置窗体背景渐变

方案一: 重写绘图事件,配合 1 setAttribute(Qt::WA_TranslucentBackground);//设置窗体透明(这个时候主窗体是没有颜色的(也不可以设置颜色),一般可设置一个比主窗体小一点的widget放在主窗体里,然后设置widget的颜色) 1 void Login::paintEvent(QPaintEvent *) 2...

DEV控件

1、问题:为什么从A窗体中拷贝的控件到B窗体中不能用? 答:这是由于拷贝的控件在A窗体中已经声明了引用,所以在拷贝的时候没有拷贝该控件的声明,在B窗体中没有声明,所以不能用。 2、问题:给DEV控件的RibbonPage添加图片绑定,怎么区分? 答:RibbonPage中有IMage属性和LargeImage属性,第一个是绑定小图片,第二个是绑定大图片,一...