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

WPF 深入理解一、基础知识介绍

基础知识

本系列文章是对个人 B站 up 微软系列技术教程 记录
视频地址 https://www.bilibili.com/video/BV1HC4y1b76v/?spm_id_from=333.999.0.0&vd_source=0748f94a553c71a2b0125078697617e3

winform 与 wpf 异同

1.winform 项目结构

在这里插入图片描述
编辑主要是在 Form1.cs(页面),Program.cs 程序入口代码

2.wpf 项目结构

在这里插入图片描述
App.xml
在这里插入图片描述

如何自定义启动WPF 项目

思考:wpf 是否可以像winform 一样通过program.cs有一个main函数得入口点。

测试
删除wpf得xaml格式得启动项,添加一个自定义静态类,我们也叫做program.cs
在这里插入图片描述
添加特性 [STAThread]
在这里插入图片描述

直接启动项目,便可以直接完美运行。
在这里插入图片描述
思考:为什么WPF 不适用 program.cs 来启动呢

wpf 需要在app.xml实现一些特定得功能。eg:资源,外部资源dll

WPF 项目结构

app.xml

在这里插入图片描述

重新生成项目解决方案
在这里插入图片描述
在bin->debug中找到文件
使用反编译工具 dnSpy, 对Wpfapp12.dll 进行反编译
在这里插入图片描述
反编译后,跟program.cs也是类似,有main入口
在这里插入图片描述

xmlns

xmlns 是一个属性,全称是XML Namespaces,是XML命名空间的简写。 它的主要作用是为命名空间提供一个唯一的名称。

在这里插入图片描述
x 是为该命名空间 取得简写名字,可以通过该名称 引出其他属性

页面 界面

xaml (可扩展应用标记语言)底层编译后,也是cs 代码,只是使用xaml 方式更为直观
在这里插入图片描述
1.一个xaml 只能有一个顶级元素
在这里插入图片描述
在这里插入图片描述

类的层次关系

在这里插入图片描述
在这里插入图片描述

编译过程

在这里插入图片描述

反编译 虎牙.exe

在这里插入图片描述

相关文章:

  • 华为HDC开发者大会鸿蒙进展超预期
  • Mac 安装依赖后依旧报错 ModuleNotFoundError: No module named ‘Crypto‘
  • CSS背景属性:打造丰富视觉效果的背景设计
  • 打造坚固的SSH防护网:端口敲门入门指南
  • 【SPSS】基于RFM+Kmeans的电商客户价值聚类分析
  • 【Unity Shader】片段着色器(Fragment Shader)的概念及其使用方法
  • 【QT】实现无边框窗口+可拖动+可调整大小
  • TCP与UDP_三次握手_四次挥手
  • 最新解决docker镜像无法下载问题
  • Redis的哨兵模式是?功能?(通俗易懂版)
  • 用 PID 优化拥塞控制
  • 存储无界限:MK米客方德SD NAND系列,小容量到大容量的全方位覆盖
  • 天软特色因子看板(2024.06 第8期)
  • 展讯-QMI8658和气压传感器驱动调试
  • Maven和JAVA_HOME的关系
  • 时间复杂度分析经典问题——最大子序列和
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • CSS居中完全指南——构建CSS居中决策树
  • hadoop集群管理系统搭建规划说明
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • scala基础语法(二)
  • Shell编程
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 那些被忽略的 JavaScript 数组方法细节
  • 前端技术周刊 2019-01-14:客户端存储
  • 首页查询功能的一次实现过程
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (7)摄像机和云台
  • (MATLAB)第五章-矩阵运算
  • (solr系列:一)使用tomcat部署solr服务
  • (二)pulsar安装在独立的docker中,python测试
  • (二)斐波那契Fabonacci函数
  • (四)linux文件内容查看
  • (杂交版)植物大战僵尸
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (转载)Linux网络编程入门
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NET程序员迈向卓越的必由之路
  • .Net各种迷惑命名解释
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • @PreAuthorize与@Secured注解的区别是什么?
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [bzoj4240] 有趣的家庭菜园
  • [C#][DevPress]事件委托的使用
  • [CF407E]k-d-sequence
  • [Eclipse] 详细设置护眼背景色和字体颜色并导出
  • [FC][常见Mapper IRQ研究]
  • [ffmpeg] x264 配置参数解析
  • [Google Guava] 2.1-不可变集合
  • [IDF]啥?