认识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会出现很多相关选项,主要是底层框架(.NET Framework,.NET Core,.NET)的不同,这里我们选择WPF App(.NET Framework)这一个项目为例。

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

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

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

    References用于添加项目依赖包;

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

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

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

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300948.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MFC Attach()函数和Detach()函数

一、Windows对象和MFC对象的区别?MFC对象实际上并没有把整个Windows对象都包装在其中。对于窗口:MFC对象它只是有一个窗口句柄而已,这个窗口句柄如果指向一个实际存在的窗口对象(窗口对象,也就是WNDCLASS,是…

用“谬论”指挥研究方向数十年,是谁让“老年痴呆”至今仍是绝症?

全世界只有3.14 % 的人关注了青少年数学之旅阿尔兹海默症,是“老年痴呆”的正确科学名称。它可能是世界上最广为人知的“绝症”之一:不仅让患者丧失了记忆和自我,也一直令在寻找治疗方法的学者和医药企业束手无策。30 多年前出现的“淀粉样蛋…

一定要多角度看事物 | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅一定要多角度看事物岁月对我们做了什么无法反驳论发型的重要性坐骨神经痛被赋予了新含义老师真的很会总结了(图源E_Volution_)扎心了↓ ↓ ↓

烧录imx6需要的linux空间,IMX6Q学习笔记——开发板的Linux系统更新和烧录

IMX6Q学习笔记——开发板的Linux系统更新和烧录记录自己在电鱼电子开发SAIL-IMX6Q全能板后,并且对系统和模块进行简单测试的过程之后对开发板的Linux系统进行更新和烧录的记录过程,算是进行一个分享和记录,同时也方便自己日后查阅。首先准备好…

ABP Framework:移除 EF Core Migrations 项目,统一数据上下文

原文:Unifying DbContexts for EF Core / Removing the EF Core Migrations Project[1]导读:软件开发的一切都需要平衡在 ABP Framework V4.4 RC 新增功能介绍 中,对应用程序启动解决方案模板做了一个重要改变:删除 EntityFramewo…

Hello Python

2019独角兽企业重金招聘Python工程师标准>>> My first Python demo>>> movies["a","b","c"] >>> print(movies[0]) a >>> print(movies[1]) b >>> >>> print(movies) [a, b, c…

牛顿儿时成绩很差,5岁开始接触物理,也许是他如此伟大的唯一原因!

全世界只有3.14 % 的人关注了青少年数学之旅我们都知道,牛顿是伟大的物理学家,但是也许很多人不知道,牛顿也是平常的孩子,他不是神童,成绩很一般。那牛顿是如何成为如此伟大的物理学家的呢?原来&#xff0c…

C语言数据结构----递归的应用(斐波拉契数列、汉诺塔、strlen的递归算法)

本节主要说了递归的设计和算法实现,以及递归的基本例程斐波拉契数列、strlen的递归解法、汉诺塔和全排列递归算法。 一、递归的设计和实现 1.递归从实质上是一种数学的解决问题的思维,是一种分而治之的思想。 这个是常见的一种数学算法,其实它…

【物理动图】物理老师一针见血:50张动图看懂高中物理

全世界只有3.14 % 的人关注了青少年数学之旅相互作用作用力与反作用力的特点是什么?摩擦力的大小跟什么有关系?图中两个弹簧的弹力大小是否一样?若一样,为什么?自行车前后轮所受力的方向是什么?物块所受支持…

打造史上最小尺寸.Net Core单文件应用程序

.Net Core支持将应用程序发布成单文件进行部署和分发。以下示例将Windows应用作为独立的单文件应用程序发布:dotnet publish -r win-x64 -c Release /p:PublishSingleFiletrue /p:PublishTrimmedtrue /p:IncludeNativeLibrariesForSelfExtracttrue查看publish目录&a…

华硕路由器 linux上不了网,华硕ASUS路由器连不上网怎么办?

在本文中将给大家详细的介绍,华硕(ASUS)路由器连不上网/无法上网的解决办法,请按照下面的步骤进行操作。1. 首先,检查你的宽带是否可以正常使用,可以通过下面的方法进行测试。(1)观察光猫上的指示灯,如果光信号或者LOS…

NHibernate学习笔记(二):one-to-one关系映射

上一篇:NHibernate学习笔记(一):初识NHibernate本文的内容:1.介绍NH如何处理对象间one-to-ont的映射关系;经验教训:1.操作一对一关联关系中的一个…

【汇总】多种方法教你绕过 TPM 2.0 安装 Windows 11 操作系统

此前我们曾介绍三种方法绕过 TPM 2.0 来安装 Windows 11 操作系统。方法一:删除 appraiserres.dll 文件方法二:替换 appraiserres.dll 文件方法三:替换 install.wim 文件今儿我们再谈谈“大法好”的注册表,希望能帮助大家成功安装…

【物理笑话】学过物理的人才能看懂的笑话,你能看明白几个?

全世界只有3.14 % 的人关注了青少年数学之旅1丈夫买了几斤廉价藕,满以为可对妻子炫耀了。不料妻子破口大骂:笨蛋!为何不买别的菜,这藕一斤少说也有半斤窟窿啊!还说便宜?2第一次坐飞机的两位老妇人在飞机起飞…

为什么国外程序员加班少?他们这样评价国内996和技术公众号

有人统计过,我们平均每天花在看内容上的时间是5-6小时与其每天被各种看过就忘的内容占据时间不如看点真正对你有价值的信息下面小编为你推荐几个高价值的公众号它们提供的信息能真正提高你生活的质量长按二维码,选择【识别图中二维码】关注Python爱好者社…

c语言编程每日一练教程,每日一练 | C语言之指针

原标题:每日一练 | C语言之指针练习导言学习 C 语言的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员&…

dynamic flash xml news----滚动新闻

今天有人问起这个问题,抽出晚上的一点时间,做了一个,时间紧难免有不足之处,如果发现bug,请以在贴出。演示:代码:代码://copyright by webstudio.com.cn 2005-4-7 system.useCodepagetrue; Stage…

C# 代码生成二维码方法及代码示例(QRCoder)

背景二维码是越来越流行了,很多地方都有可能是使用到。如果是静态的二维码还是比较好处理的,通过在线工具就可以直接生成一张二维码图片,比如:草料二维码。但有的时候是需要动态生成的(根据动态数据生成)&a…

你对手机打字一无所知!| 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅(视频源网络,侵权删)你真的会打字吗↓ ↓ ↓

并行中的分区Partitioner

本篇介绍在C#中,把一个大集合,或大数组分成若干个区来执行。Demo中是把一组字符串放在list中,然后并行生成MD5串,返回回来。using System; using System.Collections.Generic; using System.Reflection; using System.Threading.T…