【WPF】Windows系统桌面应用程序编程开发新手入门-打造自己的小工具

电脑Windows系统上的桌面程序通常是用Visual Studio 开发工具编写出来的,有两种开发方式供选择,一种是WindowForm,简称WinForm,另一种是Windows Presentation Foundation,简称WPF,这里将学习WPF项目。

文章目录

  • 创建程序
  • 布局控件
  • 操作控件
  • 运行程序

这两种项目都是用C#语言编写功能代码,那有什么区别呢:

项目类别CPU负载使用场景新手学习说明
WinForm不在意界面的外观,简单容易拖动组件到窗口上的设计,有编写基础的学习很容易上手;
WPF可定制界面的外观,复杂较难采用xaml布局组件在窗口上的设计,与前端页面设计大同小异;

学了WinForm项目,还需要学习WPF吗?

如果遇到项目中要求实现复杂的用户页面外观和行为,用WPF项目开发会顺利一些,而用WinForm项目是不能轻松实现的

在学习WPF之前,需要在编写基础上学习一些前端页面设计知识,如:xaml布局

如果电脑系统里需要有已安装好的Visual Studio 开发工具,
这是在线安装的最新版,在安装过程中至少要勾选WPF应用,这样才会有WPF项目可以选择创建

创建程序

打开开发工具,创建新项目时,选择其中的WPF 应用(.NET Framework),如下图
在这里插入图片描述
当然,你可以选择另一个WPF 应用来创建,程序用另外的.NET框架,

.NET Framework框架相比,.NET Core框架具有跨平台的特点

布局控件

在开发工具里,左侧有个工具箱面板,里面放置了一些可用的控件,可放置到设计页面中,
在这里插入图片描述
可用的组件,也是可以通过在xaml文件中手动输入添加,就像前端页面编写布局一样的

操作控件

添加在页面的控件是可以操作的,

先看看开发工具的右侧,解决方案资源管理器下,
在这里插入图片描述
项目中第一个页面的文件解释一下:

  • MainWindows.xaml - 带后缀.xaml 的就是页面的布局文件
  • MainWindows.xaml.cs - 带后缀.cs 的就是页面的代码文件

在页面的布局文件内容里,给其添加的操作控件TextBox 起个名字textBlock1,内容如下

<Grid>
    <TextBox x:Name="textBlock1" VerticalAlignment="Top" Text="Hello zs1028" />
    <Button VerticalAlignment="Center" Width="100" Click="Button_Click">点击我</Button>
</Grid>

注意,以上布局内容不要复制粘贴到你的项目里,请边输入边学习,因为有些代码是由开发工具辅助功能自动完成的

然后,在页面代码文件里,会看到自动新增的按钮点击事件Button_Click,代码如下

 /// <summary>
 /// MainWindow.xaml 的交互逻辑
 /// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
    	//这里手动输入,通过它的名字来操作控件,设置它的属性即可
        textBlock1.Text = "在这里插入内容";
    }
}

运行程序

最后,点击开发工具上的启动图标按钮,一个桌面程序就运行起来了
在这里插入图片描述
运行动图效果如下
在这里插入图片描述

就写到这里,按照以上步骤来做,新手入门就非常容易多了,有时间多多研究,自由发挥,打造属于自己的小工具。

下一期作者会继续讲一讲,带上感兴趣的小朋友们打造属于自己的小工具,敬请期待!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[数据库]mysql用户管理权限管理

目录 ​编辑用户管理​编辑 权限管理 ​编辑 ​编辑 ​编辑案例​编辑 细节 ​编辑 用户管理 我们用创建的用户在登录之后可以看到他和root看到的数据库是完全不一样的 权限管理 案例 登录这个账户可以看到还看不到teatdb这个数据库, 因为还没有授权 分配权限 过来刷新…

MathType2024最新官方无限永久试用版本下载

“我正在使用MathType&#xff0c;它让我的工作变得简单多了。”在中国科学院数学与系统科学研究院的一间办公室内&#xff0c;研究员张益唐兴奋地对《中国科学报》说。 这位因解决了数学界著名的“孪生素数猜想”而名声大噪的数学家&#xff0c;在谈到他最近使用的数学公式编辑…

MM-LLM:CogVLM解读

在图文多模态模型中&#xff0c;范式是图像的编码器、文本编码器、模态融合器。也就是不同模态特征抽取加模态对齐。 这部分可以看李沐的精讲 在大模型里的范式在也是如此&#xff0c;目前的工作大部分都专注于怎么拉齐不同模态。 该论文的动机&#xff08;背景&#xff09;&…

指针类型及数据读取和解释

指针类型的作用和解引用的过程 指针类型的作用&#xff1a; 根据指针类型确定读取数据位数&#xff08;float类型指针&#xff0c;读取32位&#xff09;&#xff1b;根据指针类型解释读取的数据&#xff08;float类型指针&#xff0c;按照1位符号位&#xff0c;8位指数位&…

(单机架设教程)3D剑踪

前言 今天给大家带来一款单机游戏的架设&#xff1a;3D剑踪 如今市面上的资源参差不齐&#xff0c;大部分的都不能运行&#xff0c;本人亲自测试&#xff0c;运行视频如下&#xff1a; 3D剑踪 搭建教程 此游戏架设不需要虚拟机&#xff0c; 我们先解压 “3D剑踪.zip” &…

【计算机图形学 | 基于MFC三维图形开发】期末考试知识点汇总(上)

文章目录 视频教程第一章 计算机图形学概述计算机图形学的定义计算机图形学的应用计算机图形学 vs 图像处理 vs模式识别图形显示器的发展及工作原理理解三维渲染管线 第二章 基本图元的扫描转换扫描转换直线的扫描转换DDA算法Bresenham算法中点画线算法圆的扫描转换中点画圆算法…

老师如何发布期末成绩查询

期末成绩的发布总是让人既期待又紧张。但别担心&#xff0c;今天我就来和大家分享一下如何高效、准确地发布期末成绩查询&#xff0c;让家长和学生都能轻松查到成绩&#xff0c;同时也减轻你的工作负担。 整理成绩数据是关键。确保你的成绩单是最新的&#xff0c;并且已经经过仔…

架构师篇-10、DDD实战篇:通过领域模型落地系统

基于领域模型的设计与开发 数据库设计程序设计微服务设计 在线订餐系统的领域事件通知 微服务拆分 事件风暴会议 梳理领域事件进行领域建模识别聚合关系划分限界上下文 用户下单领域模型 更新后的模型 领域模型的设计实现过程 数据库设计 数据库映射&#xff1a;一对一关系…

【Mac】Auto Mouse Click for Mac(高效、稳定的鼠标连点器软件)软件介绍

软件介绍 Auto Mouse Click for Mac 是一款专为 macOS 平台设计的自动鼠标点击软件&#xff0c;它可以帮助用户自动化重复的鼠标点击操作&#xff0c;从而提高工作效率。以下是这款软件的主要特点和功能&#xff1a; 1.自动化点击操作&#xff1a;Auto Mouse Click 允许用户录…

【硬件视界2】CPU和GPU:计算机架构的双子星

名人说&#xff1a;莫听穿林打叶声&#xff0c;何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 本篇笔记整理&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、CPU (中央处理器)①主要作用②特点 2、 GPU (图形处理…

Workerman在线客服系统源码,附搭建教程

源码介绍&#xff1a; Workerman在线客服系统源码。 workerman是一个高性能的PHP socket 服务器框架&#xff0c;workerman基于PHP多进程以及libevent事件轮询库&#xff0c;PHP开发者只要实现一两个接口&#xff0c;便可以开发出自己的网络应用&#xff0c;例如Rpc服务、聊天…

气膜仓库的优势与应用—轻空间

随着现代物流和存储需求的不断增长&#xff0c;传统仓库的建设和运营成本日益增加&#xff0c;企业需要寻找更加灵活、高效和经济的解决方案。在这种背景下&#xff0c;气膜仓库作为一种新型仓储形式&#xff0c;以其独特的优势和广泛的应用前景&#xff0c;逐渐受到市场的青睐…

Hadoop3:Yarn配置任务的优先级

一、需求说明 配置队列优先级 容量调度器&#xff0c;支持任务优先级的配置&#xff0c;在资源紧张时&#xff0c;优先级高的任务将优先获取资源。默认情况&#xff0c;Yarn将所有任务的优先级限制为0&#xff0c;若想使用任务的优先级功能&#xff0c;须开放该限制。 二、修…

【STM32嵌入式系统设计与开发---传感器拓展】——1_4_标准库FreeRTOS移植实验

目录 雅俗理解源码下载链接知识拓展步骤1&#xff1a;stm32f103vet6移植freeRTOS步骤:&#xff08;1&#xff09;准备开发环境&#xff08;2&#xff09;添加FreeRTOS移植 致谢 雅俗理解 雅&#xff1a;FreeRTOS是一个开源的实时操作系统&#xff08;RTOS&#xff09;&#xf…

index()方法——字符串首次出现的索引位置

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 语法参考 index()方法用于查询一个字符串在其本身字符串对象中首次出现的索引位置。它与find()方法功能相同&#xff0c;区别在于当find()方法没有检…

数据产品经理知识库构建

概述 数据产品经理是企业中负责管理和推动数据产品的专业人员。他们利用数据来辅助决策&#xff0c;优化产品&#xff0c;提升用户体验。用STAR法则&#xff08;Situation, Task, Action, Result&#xff09;来介绍数据产品经理的角色&#xff0c;应该学习的数据产品&#…

cookie 的获取过程

#第一次请求过程 浏览器第一次发送请求时,不会携带任何cookie信息 服务器接收到请求之后&#xff0c;发现请求中没有任何cookie信息 服务器生成和设置一个cookie.并将此cookie设置通过set_cookie的首部字段保存在响应报文中返回给浏 览器 浏览器接收到这个响应报文之后,发现里…

人工智能 (AI) 在能源系统中应用的机会和风险

现代文明极度依赖于电力的获取。电力系统支撑着我们视为理所当然的几乎所有基本生活功能。没有电力的获取&#xff0c;大多数经济活动将是不可能的。然而&#xff0c;现有的电网系统并未设计来应对当前——更不用说未来的——电力需求。与此同时&#xff0c;气候变化迫切要求我…

1.linux操作系统CPU负载

目录 概述CPU平均负载查看平均负载结束 概述 CPU 使用率 和CPU 平均使用率。 CPU平均负载 单位时间内系统处于 [可运行状态] 和 [不可中断状态] 的平均进程数&#xff0c;就是平均活跃进程数&#xff0c;和CPU使用率并没有直接关系 可运行状态 正在使用CPU或者正等待CPU的进…

vscode 开发qt6 开发环境搭建

vscode代码编辑器有自己一些优势&#xff0c;考虑用它开发qt6项目&#xff1a; 整个配置过程如下&#xff1a; 插件安装&#xff1a; .mingw&cmake安装配置: qt creator 创建一个测试工程&#xff0c;当然&#xff0c;工程是cmake类型 &#xff1a; vsocode 打开cmakeLis…