当前位置: 首页 > news >正文

WPF教程(一)---创建一个WPF程序基础知识

1.前言:

这篇主要讲WPF的开发基础,介绍了如何使用Visual Studio 2019创建一个WPF应用程序。

首先说一下学习WPF的基础知识:
1) 要会一门.NET所支持的编程语言--例如C#
2) 会一点“标准通用标记语言”:WPF窗体程序使用的XAML语言,也属于“标准通用标记语言”的一个分支。如果以前接触过XML(信息传输规范)、HTML(超文本标记语言/规则)、XHTML、ASP.NET之类的“标准通用标记语言”,对于学习是有所帮助的。
3) 有一定的WinForm或ASP.NET经验,主要是对控件事件的处理要有所了解。
4) 拥有良好的面向对象思想:在WPF中,经常要灵活运用各种继承关系、多态、重载等。
5) DataBinding要有所了解:Binding是WPF的一大亮点。
6) 对设计模式要有一定的了解:当然是越深入越好了,在实际项目中,各种设计模式经常交融使用。

2.WPF程序基础知识

第一、在装好以上所说的工具之后,打开Visual Studio 2019,选择“菜单—》文件—》新建—》项目”。如下图。

这里写图片描述

 第二、在“新建项目”对话框中选择“WPF应用程序”,修改名称为WpfApp1,然后点击“确定”按钮,便成功创建了一个“WPF应用程序”。新创建的项目所引用的公共类库如下。如下图。(“WPF应用程序”会在“引用”里面自动添加下图中所示的 PresentationCore、PresentationFramework(WPF桌面程序基于.net Framework)、WindowsBase三大核心程序集)。
这里写图片描述

 第三、WpfApp1项目的生成的文件结构。如下图。

这里写图片描述

 第四、在App.xaml中的“StartupUri”属性可以指定项目运行时的启动窗体。如下图中“StartupUri=”MainWindow.xaml””,还可以定义我们需要的系统资源以及引入程序集等。如下图。

这里写图片描述

 第五、在MainWindow.xaml的设计窗体中我们可以修改Title。还可以设置MainWindow的属性和添加事件。完成了这些设置以后,我们就可以对窗体添加内容了,如下图。我在这个窗体中添加了一个ListView、两个WrapPanel、两个Button等

这里写图片描述

 第六、在WPF的xmal文件中还可以添加如下资源。如下图。

这里写图片描述

 

相关文章:

WPF教程(一)---创建一个WPF程序基础知识

1.前言: 这篇主要讲WPF的开发基础,介绍了如何使用Visual Studio 2019创建一个WPF应用程序。 首先说一下学习WPF的基础知识: 1) 要会一门.NET所支持的编程语言--例如C#。 2) 会一点“标准通用标记语言”:WPF窗体程序使用的XAML语…...

【C++ 四】函数、指针

函数、指针 文章目录 函数、指针前言1 函数1.1 概述1.2 函数定义1.3 函数调用1.4 值传递1.5 函数常见样式1.6 函数声明1.7 函数分文件编写1.8 函数默认参数1.9 函数占位参数1.9 函数重载1.9.1 函数重载概述1.9.2 函数重载注意事项 2 指针2.1 指针基本概念2.2 指针变量定义和使用…...

虚拟人与娱乐传媒融合,推动综艺新模式

经过多年的更新迭代和市场的推动,虚拟人技术正在逐渐迈向成熟:3D虚拟形象的制作变得越来越精致且真实,并且出现了越来越多功能丰富使用便捷的动捕设备。因此,包括综艺影视在内的诸多领域,开始尝试将虚拟人技术融入行业…...

Linux_红帽8学习笔记分享_5

Linux_红帽8学习笔记分享_5 文章目录 Linux_红帽8学习笔记分享_51. UMASK反掩码1.1如何查看反掩码umask1.2 UMASK反掩码的作用1.2.1对于目录来说1.2.2对于文件来说 1.3如何修改UMASK反掩码1.4普通用户反掩码的测试 2.whereis的使用3. SUID权限弥补(主要针对文件,所有者执行位变…...

网络编程及项目思路

计算机和计算机之间通过网络进行数据传输 常见的软件架构: C/S:客户端/服务器 画面可以做的非常精美,用户体验好需要开发客户端,也需要开发服务端用户需要下载和更新的时候太麻烦 B/S:浏览器/服务器 不需要开发客户端,只需要…...

GD(兆易创新)系列FLASH进行FPGA和ZYNQ配置固化相操作

写在前面 本文主要针对使用GD(兆易创新)系列的FLASH做启动配置片时,遇到的相关问题进行简单整理复盘,避免后人踩坑。 本人操作固化芯片型号为:ZYNQ7045、690T(复旦微替代型号V7 690T)。 7系列…...

通过一个小例子来看一下C语言指针 p、*p、p、*p、*p分别代表什么

前言 在C语言中,指针是非常重要的概念。指针是一个变量,其值为另一个变量的地址。使用指针可以直接访问内存中的数据,这使得C语言非常灵活和强大。在学习C语言时相比大家都已经知道了&和*的区别了,但是你知道*&p和&*…...

【内摹访谈】谈谈AI爆发前夜的B端设计

本文来自摹客产品设计团队(MPD)的设计专栏“内摹访谈”。专栏介绍:专栏名称来源于西方美学理论「内摹仿说」,意指审美活动与摹仿活动紧密相连,审美不只针对表象动作,其核心在于由物及我,从表观带…...

Redis—AOF持久化

一、AOF定义 保存写操作命令到日志的持久化方式,就是 Redis 里的 AOF(Append Only File) 持久化功能 定义:以日志的形式记录每个操作,记录写指令不记录读指令,只许追加⽂件不允许修改,AOF保存的是appendonly.aof⽂件…...

OpenCV实例(五)指纹识别

OpenCV实例(五)指纹识别 1.指纹识别概述1.1概述1.2原理 2.指纹识别算法2.1特征提取2.2MCC匹配方法2.3尺度不变特征变换(SIFT) 3.显示指纹的关键点4.基于SIFT的指纹识别 作者:Xiou 1.指纹识别概述 1.1概述 指纹识别&…...

第二章 法的内容与形式

目录 第一节 法的内容与形式的概念 一、法的内容与形式的含义 二、法的内容和形式的关系 第二节 法律权利与法律义务 一、权利和义务的概念 二、权利和义务的分类 三、权利与义务的联系 第三节 法的成文形式与不成文形式 一、历史上各种法的表现形式 二、成文法与不成文…...

外包干了四年,感觉废了..

先说一下自己的情况,大专生,18年通过校招进入湖南某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

Git如何推送当前代码到远程仓库

第一种方法 (建立在已经配置好用户变量和ssh基础上) 在本地创建git仓库 git init 绑定远程仓库,origin是给远程仓库起的别名,也可以起其他名字,但是如果用origin,git push时可以不指出名字,如果…...

第五章 工厂模式

文章目录 一、简单工厂模式1、传统方式实现披萨订购( 可以忽略)披萨父类 Pizza子类胡椒披萨 PepperPizza子类印度披萨 GreekPizza订购披萨 OrderPizza订购披萨的 客户端 PizzaStore运行结果传统的方式的优缺点,新增子类需要修改的地方牵扯太多传统方式的究极耦合 2、…...

Spring MVC 参数解析(13)

目录 简介 调用流程 1. 首先,还是需要进行到前端控制器的doDispatch方法,这是我们的调用Spring MVC的核心入口方法 2. 在doDispatch方法内部,我们调用到了HandlerAdapter.handle(*****) 方法 3. 最终,我们会来到 RequestMappi…...

探索 Qt WebEngineWidgets:从底层原理到高级应用与技巧

探索 Qt WebEngineWidgets:从底层原理到高级应用与技巧 (Exploring Qt WebEngineWidgets: From Fundamentals to Advanced Applications and Techniques 一、Qt WebEngineWidgets 模块简介及原理 (Introduction and Principles of Qt WebEngineWidgets Module)1. Qt…...

leetcode160. 相交链表

给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结果后&…...

核心业务7:放款实现

核心业务7:放款实现 1.放款实现流程 -------------------未完成生成借款人还款计划和投资人回款计划-------------- 2.数据库表 3.前端流程 4.汇付宝流程 5.尚融宝后端流程 -------------------未完成生成借款人还款计划和投资人回款计划-------------- -------------…...

STM32F4系列芯片RTC模块介绍

RTC是“实时时钟”的缩写,它是一种芯片,在计算机等电子产品中广泛应用。RTC提供了实时时钟计时功能和存储时间的能力,即时钟模块,常用于控制和记录时间的应用场合。 RTC的工作原理 RTC主要由时钟电路、电源管理电路、晶振电路、…...

MySQL 在线人数 场景分析

一般在直播或者游戏中经常会统计用户在线人数,主要分为求每个时刻的在线人数和求某个时刻的在线人数两种。 【场景】:某个时刻的在线人数、每个时刻的在线人数 【知识点】:窗口函数、时间函数、sum(tag) over (order by dt,tag desc rows b…...

从零配置YOLOv5与RealSense D405:深度测距与目标检测的完整流程指南

从零构建YOLOv5与RealSense D405的智能视觉系统:深度感知与目标检测实战手册 当计算机视觉遇上深度感知,会碰撞出怎样的火花?YOLOv5作为当前最流行的实时目标检测框架,与Intel RealSense D405深度相机结合,能够为机器…...

51单片机Proteus仿真实战:从零构建流水灯系统

1. 环境准备:搭建51单片机开发环境 第一次接触51单片机的朋友可能会被各种工具软件搞晕,其实只需要两个核心工具就能完成流水灯仿真:Proteus和Keil。我刚开始学单片机时也踩过不少坑,这里把最稳定的版本和安装要点分享给大家。 Pr…...

用ProcessOn复刻《纳瓦尔宝典》思维导图:我是如何把一本投资哲学书变成可执行行动清单的

用ProcessOn将《纳瓦尔宝典》转化为可执行行动指南:从思维导图到每日实践的完整方法论 当合上这本被硅谷创投圈奉为"现代智慧集"的书籍时,很多人会陷入相似的困境——那些关于财富杠杆、幸福习惯的洞见在脑海中闪烁,却不知如何嵌入…...

【Python张量计算实战宝典】:20年AI架构师亲授5大高频场景优化技巧,错过再等一年

第一章:张量计算基础与PyTorch/TensorFlow双框架选型指南张量是深度学习的核心数据结构,本质为多维数组,支持自动微分、GPU加速与动态/静态计算图构建。理解其内存布局(如C-contiguous vs. Fortran-contiguous)、广播机…...

5大维度重构Windows体验:开源系统优化方案全解析

5大维度重构Windows体验:开源系统优化方案全解析 【免费下载链接】Atlas 🚀 An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atlas1/Atl…...

OpenClaw调试技巧:Qwen3-32B任务失败排查手册

OpenClaw调试技巧:Qwen3-32B任务失败排查手册 1. 为什么需要这份手册? 上周我尝试用OpenClaw自动整理项目文档时,遇到了一个诡异现象:同样的任务在白天能顺利完成,深夜运行时却频繁报错。经过72小时的问题追踪&#…...

MySQL高手第三章

从磁盘读取数据页到Buffer Pool的时候,free链表有什么用?我们怎么知道那些缓存是空闲的?当我们数据库运行起来的时候,肯定会不断的做增删改查,将磁盘上读取一个一个数据页放入Buffer Pool中对应的缓存页里去但是从磁盘…...

three-tile: 一个为Three.js应用注入真实地形的开源LOD模型库

1. three-tile究竟是什么? 第一次看到three-tile这个名字,很多人会误以为它又是一个WebGIS框架。但实际使用后你会发现,这个开源库的定位非常独特——它本质上是一个专为Three.js设计的LOD地形模型库。所谓LOD(Level of Detail&am…...

如何快速使用OpCore Simplify:零基础黑苹果的终极配置指南

如何快速使用OpCore Simplify:零基础黑苹果的终极配置指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenCore配置而烦恼…...

你的爬虫被识别了?可能是浏览器指纹惹的祸!教你用Playwright伪装Canvas/WebGL指纹

浏览器指纹识别:爬虫工程师的终极伪装术 当你的爬虫程序已经完美解决了User-Agent轮换、IP代理池和请求频率控制,却依然被目标网站精准识别并封禁时,你可能正面临着现代反爬技术的终极挑战——浏览器指纹识别。这种技术不依赖于传统的请求特征…...