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

news2024/10/5 19:04:48

电脑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 = "在这里插入内容";
    }
}

运行程序

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

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

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

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

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

相关文章

安全不“放假”!暑期安全老师就用秒报小程序提示学生的安全

随着暑假的到来&#xff0c;孩子们如同出笼的小鸟&#xff0c;迫不及待地投入到广阔天地的怀抱。然而&#xff0c;作为老师&#xff0c;我深知这段时间虽然孩子们得到了放松和游玩的机会&#xff0c;但安全问题却不容忽视。如何让孩子们在享受假期的同时&#xff0c;又能确保他…

SpringBoot(一)创建一个简单的SpringBoot工程

Spring框架常用注解简单介绍 SpringMVC常用注解简单介绍 SpringBoot&#xff08;一&#xff09;创建一个简单的SpringBoot工程 SpringBoot&#xff08;二&#xff09;SpringBoot多环境配置 SpringBoot&#xff08;三&#xff09;SpringBoot整合MyBatis SpringBoot&#xff08;四…

FairGuard游戏加固无缝兼容 Android 15 预览版

2024年6月25日&#xff0c;谷歌发布了 Android 15 Beta 3 &#xff0c;作为Android 15 “平台稳定性”的里程碑版本&#xff0c;谷歌建议所有应用、游戏、SDK、库和游戏引擎开发者都将“平台稳定性”里程碑版本作为规划最终兼容性测试和公开发布的目标。 安卓开发者博客提供的版…

PostgreSQL安装教程及文件介绍

Ubuntu 安装和配置 PostgreSQL 以 Ubuntu Server 20.04&#xff0c;PostgreSQL 12 版本为例。 1. 安装 使用如下命令&#xff0c;安装指定版本的 PostgreSQL sudo apt install postgresql-12在 Ubuntu 20.04 中安装 PostgreSQL 登录您的 Ubuntu 系统并使用以下 apt 命令更新…

[HBM] HBM TSV (Through Silicon Via) 结构与工艺

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解DDR》 全文 3300 字。 1 概念 1.1 什么是HBM TSV 使用 TSV 堆叠多个DDR DRAM成为一块HBM, 成倍提高了存储器位宽&#xff0c; 一条位宽相当于高速公路的一条车道&#xff0c; 车道越多&#xff…

npm安装依赖报错——npm ERR gyp verb cli的解决方法

1. 问题描述 1.1 npm安装依赖报错——npm ERR! gyp verb cli 登录后复制 npm MARN deprecated axiosQ0.18.1: critical security vuLnerability fixed in v0.21.1. For more information, npm WARN deprecated svg001.3.2: This SVGO version is no Longer supported. upgrade …

汽车电子工程师入门系列——汽车操作系统架构学习研究-AUTOSAR

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

6-14题连接 - 高频 SQL 50 题基础版

目录 1. 相关知识点2. 例子2.6. 使用唯一标识码替换员工ID2.7- 产品销售分析 I2.8 - 进店却未进行过交易的顾客2.9 - 上升的温度2.10 - 每台机器的进程平均运行时间2.11- 员工奖金2.12-学生们参加各科测试的次数2.13-至少有5名直接下属的经理2.14 - 确认率 1. 相关知识点 left …

5 数字滤波器的基本结构

目录 系统框图表示法 系统框图求系统函数 系统框图的其他结构形式 IIR数字滤波器的基本结构 直接型系统框图 级联型系统框图 并联型系统框图 信号流图 信号流图表示法 信号流图代数运算基本规则 系统框图表示法 系统框图求系统函数 系统框图的其他结构形式 IIR数字滤…

30分钟学习如何搭建扩散模型的运行环境【pytorch版】【B站视频教程】【解决环境搭建问题】

30分钟学习如何搭建扩散模型的运行环境【B站视频教程】【解决环境搭建问题】 动手学习扩散模型 点击以下链接即可进入学习&#xff1a; B站视频教程附赠&#xff1a;环境配置安装&#xff08;配套讲解文档&#xff09; 视频 讲解主要内容 一、环境设置 1.本地安装&#xf…

grpc学习golang版( 二、入门示例 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、环境二、编写protobuf文件三、编写server服务端四、编写Clie…

SpringBoot入门实战:SpringBoot整合SpringSecurity

1.背景介绍 SpringBoot是Spring官方推出的一款快速开发框架&#xff0c;它基于Spring框架&#xff0c;采用了约定大于配置的开发方式&#xff0c;简化了开发过程&#xff0c;提高了开发效率。SpringBoot整合SpringSecurity是SpringBoot与SpringSecurity的集成&#xff0c;可以实…

Ubuntu24.04 C++ 编译并使用OpenCV

Ubuntu24.04 换源 Ubuntu24.04 apt换国内源 清华源 阿里源 中科大源 163源-CSDN博客文章浏览阅读49次。作为 LTS 版本,它会有 5 年的常规维护和安全更新。如果订阅 Ubuntu Pro,还能享受额外7年的支持。也就是说, Ubuntu Pro将享有长达 12 年的系统更新保障!接下来,我们将…

注意力机制之ECA-Net:Efficient Channel Attention for Deep Convolutional Neural Network

论文link&#xff1a;link code&#xff1a;code 1.摘要 近年来&#xff0c;通道注意机制被证明在改善深层卷积神经网络&#xff08;CNN&#xff09;的性能方面提供了巨大的潜力。然而现有的大多数方法都致力于开发更复杂的注意模块以获得更好的性能&#xff0c;这不可避免地增…

观测云产品更新 | Pipelines、智能监控、日志数据访问等

观测云更新 Pipelines 1、Pipelines&#xff1a;支持选择中心 Pipeline 执行脚本。 2、付费计划与账单&#xff1a;新增中心 Pipeline 计费项&#xff0c;统计所有命中中心 Pipeline 处理的原始日志的数据大小。 监控 1、通知对象管理&#xff1a;新增权限控制。配置操作权…

智慧商场导航:基于3D可视化与iBeacon技术的商场导航营销方案

在数字化时代&#xff0c;商场导航系统正经历着一场技术革新。维小帮凭借其先进的定位技术和地图引擎技术&#xff0c;为商场提供了一套全方位的智慧导航解决方案&#xff0c;旨在提升顾客体验&#xff0c;增强商场品牌形象&#xff0c;并推动经济效益的增长。 实现原理 1、3…

【目标检测】DN-DETR

一、引言 论文&#xff1a; DN-DETR: Accelerate DETR Training by Introducing Query DeNoising 作者&#xff1a; IDEA 代码&#xff1a; DN-DETR 注意&#xff1a; 该算法是在DAB-DETR基础上的改进&#xff0c;在学习该算法前&#xff0c;建议掌握DETR、DAB-DETR等相关知识…

缺少msvcp140一键修复方法,快速解决msvcp140.dll丢失问题

日常中电脑已经成为我们生活和工作中不可或缺的工具。然而&#xff0c;在使用电脑的过程中&#xff0c;我们常常会遇到一些问题&#xff0c;其中之一就是电脑运行软件时提示找不到msvcp140.dll。这个问题会导致软件无法启动运行&#xff0c;但只要我们了解其原因并采取相应的解…

antd DatePicker日期选择框限制最多选择一年

实现效果 实现逻辑 import React, { useState } from react;const ParentComponent () > {const [dates, setDates] useState(null);const disabledDate (current) > {if (!dates) {return false;}const tooLate dates[0] && current.diff(dates[0], days) &…

【使用sudo apt-get出现报错】——无法获得锁 /var/lib/dpkg/lock-open(11:资 源暂时不可用) ,是否有其他进程正占用它?

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、ubuntu中进程正在被占用1. 问题描述2. 原因分析3. 解决 总结 前言 一、ubuntu中进程正在被占用 1. 问题描述 在Ubuntu中&#xff0c;使用终端时输入带有…