WPF- vs中的WPF应用项目模板 如何自己实现

news2024/9/25 9:30:47

读书笔记

1. 单个 c#文件的 空白window应用程序 (只展示了一个button按钮)

2.C#文件 和xml文件 的空白window程序  .xml文件作为程序的资源 (只一个button按钮)

3. xmal和c#共同编译 形如使用VS 创建WPF应用项目模板

1.新建一个wpf空白项目 ,添加一个主c#文件 和xaml文件(属性->生成操作-->设置为page)

在开始写代码前 ,先 手动添加 图中的引用项,
main方法类继承 window类 ,并定义为 部分类(partial)

和单纯 c#文件的空白Window程序比较 ,在类的构造函数中 没有定义button控件 ,而是使用了一个看名字是一个什么东西的初始化 方法

xaml文件如图 , 可以看到 button类在这里声明和定义了.x:class的内容 是c#中main方法 所在的类 的命名空间 类的名字....结合 这个类 是一个部分类,可以猜想到  xmal 也是在写一个部分类,不然 button 是怎么显示出来的呢?对吧

 还是和vs 的模板不一样,c#中还有太多的东西 ,是时候把Application对象也写到zaml中

增加两个文件,你知道的,一个xaml 文件 一个c#文件  ,他们都会以部分类的形式出现...

现在将Main方法 全部 注释 ,运行程序 ,非常完美的报错了.  提示没有Main方法 ,函数入口都找不到
关键的一步是: 将Application 的 xaml文件  的生成操作设置为 ApplicationDefinition
现在程序完美的启动了

 现在把Application 的c# 文件删除, 因为这里程序中好像什么都没做,同样可以运行.对的 ,不需要这个文件

 至此   我们已经手动的完成了一个WPF应用(c#)的项目模板 .
相信你有很多还不明白,因为我也不明白.但是你应该清楚了,书上说的 ,把界面抽离出来 ,是这么一个过程

从XAML 元素怎么变成的C#对象

  1. .使用无参数构造函数创建对象。(从 XAML 元素创建对象时,XAML 分析器始终使用类的无参数构造函数。不能指定其他构造函数。)
  2. 使用 XAML 元素的 content 部分设置 class 对象的 default content 属性。参考WPF中elememt的contentproperty特性-CSDN博客
  3. 将其他属性设置为在 XAML 属性中分配给的值。(这里忽略了怎么从一个字符串类型 变成 类属性真正需要的类型 ,下面介绍)

属性的类型转换器

使用 C# 创建类对象与使用 XAML 创建类对象之间存在差异

  1. 在 C# 中创建的对象具有名称。button btn=new button();   
  2. 默认情况下,在 XAML 中创建的对象没有名称。<Button>Hi There</Button>
  3. 如果需要在后台代码中操作这个xaml创建的对象 ,在xaml文件中需要这样
    <Button Name="btn">Click Me</Button>
    或者<Button x:Name="btn">Click Me</Button>

xmal中的命名空间代表着什么

就好像在c#中的using语句一样

两种形式的标记扩展markup extension的处理流程

扩展类必须派生自位于 System.Windows.Markup 命名空间中的 MarkupExtension 类。

该类必须使用 重写 名为 ProvideValue 的方法,如下面的代码所示。这是 XAML 分析器将调用以获取所需对象的方法。

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

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

相关文章

list底层详解

目录 介绍 list的实现 1.自定义节点 2.迭代器封装 构造函数 前置和后置 前置--和后置-- *操作符和->操作符 和!操作符 iterator和const_iterator 3. list类 构造函数和析构函数 赋值操作 头尾迭代器 插入和删除 头插头删尾插尾删 list接口函数总代码 介绍…

【开端】Java中最常用的一个类型String的使用

一、绪论 Java中最常用的一个类型是String&#xff0c;其实从JDK1.0 到JDK20 Java 开发工具包其实也经过很多演变&#xff0c;很多功能做了一些优化。这一节就把String类里的方法拎出来看看哪些是常用的&#xff0c;哪些经常用不到得到&#xff0c;哪些是已经有的&#xff0c;…

BaseCTF [第 2 周] lk

前言&#xff1a;做题笔记。 下载解压查壳。 64IDA打开。 查找字符串去。 跟进BaseCTF{ 找到 main 头部&#xff1a; 尾部&#xff1a; 程序&#xff1a; 选择题&#xff0c;咳&#xff0c;动漫迷可以做&#xff0c;也能得flag。(我不怎么看动漫。。) 告知我们&#xff0c;输…

【开发笔记】Notepad++配置

Notepad配置 Notepad保护色配置 settings --> Style Configurator 选择 Enable olobal foreground colourEnable global background colour 设置背景色 点击 Save & Close按钮&#xff0c;完成保存。 设置 Unix换行符

计算机网络 TCPUDP、IP、ARPRARP、NAT总结

文章目录 TCP 和 UDPUDPTCPTCP 三次握手半连接队列&#xff08;SYN队列&#xff09;全连接队列&#xff08;Accept队列&#xff09;TCP四次挥手为什么四次挥手为什么需要TIME_WAIT状态TIME_WAIT的危害为什么是2MSL 重传机制滑动窗口流量控制拥塞控制 IPIP地址分类A、B、C类地址…

javaee、ssm(maven)、springboot(maven)项目目录结构以及编译后文件目录存放路径

javaee项目目录结构&#xff1a; src下的文件或者是源码编译后都会放在WebRoot&#xff08;项目根目录&#xff09;文件夹\WebRoot\WEB-INF\classes目录中。 编译后的文件夹目录如下&#xff1a; 以上为普通的javaee项目目录结构&#xff0c;同maven工程目录结构是不一样的。…

Segment Anything:如何导出完整的ONNX模型?

在本文中&#xff0c;我将讨论 Segment Anything - 例如分割的神经网络&#xff0c;可用于从图像中分割任何对象而无需知道其类型。但是&#xff0c;这不是关于如何使用它的教程&#xff0c;因为它已经在官方存储库和其他类似文章中进行了描述。在这里&#xff0c;我将解释如何…

《计算机网络期末复习知识点大全》

目录 一、第一章 概述 1. TCP/IP分层网络体系结构、分层原因、作用 2. 时延、发送时延、传播时延 2.1 速率相关性能指标 2.1.1 速率 2.1.2 带宽 2.2 时间相关性能指标 2.2.1 发送时延 2.2.2 传播时延 2.3 考点例题 二、第二章 物理层 1. 编码与调制 2. 常用编码方…

人眼检测(单张图像-原始版)

目录 实验原理 实验代码 运行结果 改进代码 实验原理 要在C中使用OpenCV来检测图像中的人眼&#xff0c;你需要完成以下步骤&#xff1a; 安装OpenCV库并设置好开发环境。加载预训练的级联分类器&#xff08;通常是用于人脸和眼睛检测的XML文件&#xff09;。读取图像或视…

SQL-函数ing

1、字符串函数 # 字符函数 select concat(hello , mysql!); select lower(HELLO); select upper(hello); select lpad(01,5,-);# 左填充 select rpad(01,5,-);# 右填充 select trim( hello mysql ! );# 去除前后空格 select substring(hello mysql!,1,7);# 截取一部分字符前7…

【Java设计模式】非循环访问者模式:简化对象交互

文章目录 【Java设计模式】非循环访问者模式&#xff1a;简化对象交互一、概述二、非循环访问者设计模式的意图三、非循环访问者模式的详细解释及实际示例四、Java中非循环访问者模式的编程示例五、非循环访问者模式类图六、Java中何时使用非循环访问者模式八、非循环访问者模式…

XTuner微调个人小助手认知 #书生浦语大模型实战营#

1.任务&#xff1a; 本次的任务是使用 XTuner 微调 InternLM2-Chat-1.8B 实现自己的小助手认知&#xff0c;从而让模型能够个性化的回复&#xff0c;让模型知道他是我们的小助手&#xff0c;在实战营帮我们完成XTuner微调个人小助手认知的任务。并截图打卡。 任务打卡&#x…

深入探索【Hadoop】生态系统:Hive、Pig、HBase及更多关键组件(下)

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《大数据前沿&#xff1a;技术与应用并进》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、什么是Hadoop 2、Hadoop生态系统的构成概览 二…

【html+css 绚丽Loading】 000019 五行轮回剑

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享htmlcss 绚丽Loading&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495…

【云原生】Mysql 集群技术

PS&#xff1a;MySQL的源码编译进行实验环境操作 1、MySQL安装及初始化 &#xff08;1&#xff09;生成启动脚本 &#xff08;2&#xff09; 修改环境变量 &#xff08;3&#xff09;生成配置文件 &#xff08;4&#xff09;数据库初始化建立mysql基本数据 &#xff08;5&…

UnrealEngine学习(03):虚幻引擎术语

1. 项目 虚幻引擎5项目&#xff08;Unreal Engine 5 Project&#xff09; 中包含游戏的所有内容。项目中包含的大量文件夹都在磁盘上&#xff0c;例如 Blueprints 和 Materials 。你可以按照自己的意愿命名文件夹并将其整理到项目中。虚幻编辑器&#xff08;Unreal Editor&…

云网络/云探测+零信任架构初阶知识扫盲

一、关键&#xff08;边界&#xff09;节点 1、边界 &#xff08;1&#xff09;CiscoASA Firepower 思科 Firepower NGFW&#xff08;下一代防火墙&#xff09;是专注于威胁防御的下一代防火墙&#xff0c;它将多种功能完全集于一身&#xff0c;采用统一管理&#xff0c;可在…

荣耀应用商城——被下架应用申诉指南

申诉背景 为了营造良好的荣耀应用市场生态环境&#xff0c;保障开发者权益及提升用户体验&#xff0c;此流程针对应用被下架后开发者后续的具体申诉操作流程及详细介绍。 该流程适用于开发者在荣耀应用市场提交的应用&#xff0c;且应用当前处于被下架状态。 申诉流程 申诉定义…

PHP概述-环境搭建-开发工具安装

老师建议注册使用百度文心一言&#xff1b;讯飞星火大模型-AI大语言模型-星火大模型-科大讯飞&#xff1b;Kimi.ai - 帮你看更大的世界 等人工智能工具软件的一个到两个&#xff0c;也可下载文心一言、讯飞星火、kimi等APP软件使用&#xff0c;对于我们在读的大二学生来说有什么…

XR虚拟拍摄和VP有什么区别

XR 虚拟拍摄技术最早源于舞台屏当中,当前衍生出“VP 虚拟制片”、“XR 扩展现实"两大类: 扩展现实&#xff08;xR&#xff09;拍摄&#xff0c;扩展是指LED屏以外区域在画面中被虚拟图形所覆盖&#xff0c;扩展无限的虚拟空间&#xff1b;现实是指LED屏为导演和演员提供肉…