WPF 系列-01默认程序结构

WPF应用程序启动项

创建一个WPF应用程序,系统为我们自动生成了App.xaml和一个普通的MainWindow.xaml窗体文件。

App.xaml 和cs 文件文件如下:

<Application x:Class="Example_01.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:Example_01"StartupUri="MainWindow.xaml"><Application.Resources></Application.Resources>
</Application>
public partial class App : Application{
}

Application的StartupUri属性: 当Application启动时,会获取StartupUri属性指向的UI并展示。像Winform和Asp.Net Core 应用程序启动都Main方法,这里并没有找到程序入口点Main方法,这是因为WPF框架自动替我们执行Main方法,我们打开obj文件夹下的debug文件夹,我们发现App.g.cs 文件:

d0c8d276ced8dcb4f6d12a6a23a6cf7e.png

看到这个文件我相信大家都应该了解WPF应用程序是如何启动    

Application 类是应用程序的一个实例,是单例模式,在整个应用程序域内只有一个实例,可以通过 App.Current属性来获取到该实例。Application有几个比较重要的事件我们做一下介绍:

  • Startup 事件:应用程序启动时触发

  • Activated 事件:应用程序窗体激活时触发

  • Deactivated 事件:应用程序窗体从激活状态变为非激活触发

  • Exit事件:应用程序退出时触发

d36d8666ad634f296c8646857f100c9e.png

Activated和Deactivated演示:

标签化语言

99f1e74bd8bc85269618b3b32ba944e9.png

wpf的窗体是使用xaml标签来定义对象的, 顶级标签<Window></Window>定义了Window对象, <Grid></Grid> 定义了一个网格布局对象,<Button></Button>定义了一个Button对象,我们也可以在标签内定义属性以及事件。xmlns和xmlns:x和xmlns:d和xmlns:mc 都是XAML命名空间,和C# namespace 相似。

xmlns 命名空间 : 在XAML中没有使用前缀的元素定义都来自于该命名空间,例如<Window></Window> <Grid></Grid><Button></Button>

xmlns:x 命名空间:x:Class 指令引用的改命名空间,表示XAML解析器将包含的标签解析后放到哪个C#类中。

xmlns:d 命名空间表示提供一些设计器的支持,mc:Ignorable="d" 指令表示在xaml设计器中生效,在运行时并不起作用。

xmlns:local 应用自定义类型

xmlns:d 命名空间表示提供一些设计器的支持

通过这篇文章我们对WPF启动项、以及标签语言有了个简单的认识,下一节我们将WPF常用布局系统

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

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

相关文章

纳税服务系统【角色与用户】

用户与角色之间的关系 我们在做用户模块的时候&#xff0c;漏掉了最后一个功能。在新增功能中是可以选择角色的。 用户与角色之间的关系也是多对多 一个用户对应多个角色一个角色可以被多个用户使用。现在呢&#xff0c;我们的用户表已经是写的了。我们最好就不要修改原有的用户…

flex-grow flex-shrink 解决最后一行个数不足无法对齐

正常情况下&#xff0c;每页大小15个&#xff0c;设置每行3列&#xff0c;刚好5行。 当外部容器宽度不足以放3列时&#xff0c;自动换行&#xff0c;但最后一行元素自动撑满 &#xff0c;会造成元素块大小不一致&#xff0c;不是想要的效果 原始代码示例&#xff1a; <ul …

POJ 1562深搜判断连体油田个数

http://poj.org/problem?id1562 大意&#xff1a;输入mp二维矩阵&#xff0c;规定‘’连体的包括对角线为一片油田&#xff0c;统计共有多少油田。深搜方向数组dir设置8个方向遇到继续搜索把当前位置赋值*避免重复遍历即可 #include <iostream> #include <cmath> …

C# 并行编程避坑指南之-Try Catch系列

自从.NET Framework 4.5(含4.5)提供了Task开启线程后&#xff0c;基本上Thread的使用频率就大幅度降低了&#xff0c;但是一些老项目&#xff0c;或者老程序还是习惯用Thread去做&#xff0c;如果一定要使用Thred&#xff0c;那我们就必须在代码中使用try、catch块去处理异常的…

系统配置vue.config.js(通用)和vue3中的vite.config.js的通用配置

vue配置大全 本人实例自用&#xff0c;不喜勿喷 vue.config.js的配置 module.exports {devServer: {host: ,hot: true,port: 8086,disableHostCheck: true,//新版的webpack-dev-server出于安全考虑&#xff0c;默认检查hostname&#xff0c;//如果hostname不是配置内的&#x…

.NET 6应用程序适配国产银河麒麟V10系统随记

最近想在麒麟系统上运行.NET 6程序&#xff0c;经过一番折腾最终完成了&#xff0c;简单记录一下。目标系统:CPU: aarch64架构&#xff08;ARM64)操作系统&#xff1a;银河麒麟V10高级服务器系统银河麒麟V10系统&#xff08;以下简称麒麟&#xff09;使用的是redhat类似的dnf包…

SQL优化大法

一、查询SQL尽量不要使用select *&#xff0c;而是具体字段 1、反例 SELECT * FROM user2、正例 SELECT id,username,tel FROM user3、理由 节省资源、减少网络开销。 可能用到覆盖索引&#xff0c;减少回表&#xff0c;提高查询效率。 注意&#xff1a;为节省时间&#x…

spring boot 整合mybatis

1、添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>com.oracle</groupId><artifactId>ojdbc6</art…

Mac系统之----教你怎么显示隐藏文件,或者关闭显示隐藏文件

显示&#xff1a;defaults write com.apple.finder AppleShowAllFiles -bool true隐藏&#xff1a;defaults write com.apple.finder AppleShowAllFiles -bool false转载于:https://www.cnblogs.com/akiha/p/6936332.html

k8s 读书笔记 - CRI(容器运行时接口)详解

k8s Node 节点&#xff08;kubelet&#xff09;的主要功能就是启动和停止容器的组件&#xff0c;这组件我们称之为 容器运行时&#xff08;Container Runtime&#xff09;&#xff0c;这其中最知名的就是 Docker 了。为了更具扩展性&#xff0c;k8s 从 v1.5 版本开始就加入了容…

HTML5_02之视频、音频、Canvas

1、HTML5新特性之视频播放——video&#xff1a; ①例&#xff1a;<video src""></video> ②video标签默认为300*150的inline-block&#xff1b; ③成员属性&#xff1a; autoplay&#xff1a;是否自动播放&#xff1b; controls&#xff1a;是否显示播…

Win11的这个功能,厉害了!

上周微软正式发布了Windows11的22H2版本&#xff0c;虽说是一周年更新版&#xff0c;但仍然有不少的问题。微软给Win10换了一套皮肤&#xff0c;并做了一些优化升级&#xff0c;摇身一变成了Win11&#xff0c;但是外观方面却做的并不是很协调&#xff0c;有一些界面仍然保留着以…

platform_set_drvdata和platform_get_drvdata用法【转】

本文转载自&#xff1a;http://www.cnblogs.com/wangxianzhen/archive/2013/04/09/3009530.html 在用到Linux设备驱动的platform框架时&#xff0c;常常会遇到两个函数platform_get_drvdata和 platform_set_drvdata。通常&#xff0c;会在驱动的probe函数中获取device的相关信息…

MAUI + Masa Blazor 开发带自动更新功能的安卓App

自动更新主要下面4个步骤获取最新版本号提示用户发现更新&#xff0c;等待用户确认更新下载最新的apk包安装apk包下面从创建MAUI项目开始1、创建Maui Blazor Server应用2、安装Masa.Blazor&#xff0c;并添加引用dotnet add package Masa.Blazor在 wwwroot/index.html 中引入资…

WebApi 将 DataRow、DataTable转换成JObject返回

/// <summary> /// 扩展&#xff1a;将object强制转化为int /// </summary> /// <param name"o">要强制转换的object</param> /// <param name"defaultValue">o为null或者转换失败的默认值</param> /// <returns&g…

空间矢量数据(.shp文件)之JAVA操作

Shape文件由ESRI开发。一个ESRI&#xff08;Environmental Systems Research Institute&#xff09;的shape文件包含一个主文件&#xff0c;一个索引文件&#xff0c;和一个dBASE表。当中主文件的后缀就是.shp。 Shape文件已经是一种开源的文件格式。官方早在2006年就出版了对应…

[deviceone开发]-一个很炫的手势动画示例

2019独角兽企业重金招聘Python工程师标准>>> 一、简介 这是iOS下的效果&#xff0c;android下完全一致。通过do_GestureView组件和do_Animation组件&#xff0c;deviceone能很容易实现复杂的跨平台纯原生动画效果,这个示例就是通过手势控制图片上下动画滑动实现开合…

POJ-3067 Japan---树状数组逆序对变形

题目链接&#xff1a; https://vjudge.net/problem/POJ-3067 题目大意&#xff1a; 日本岛东海岸与西海岸分别有N和M个城市&#xff0c;现在修高速公路连接东西海岸的城市&#xff0c;求交点个数。 解题思路&#xff1a; 记每条告诉公路为(x,y), 即东岸的第x个城市与西岸的第y个…

C# 笔迹擦除8边形

本文经原作者授权以原创方式二次分享&#xff0c;欢迎转载、分享。原文作者&#xff1a;唐宋元明清原文地址&#xff1a; https://www.cnblogs.com/kybs0/p/16593146.htmlC# 笔迹擦除8边形擦除区域与橡皮大小不一致测试反馈&#xff0c;擦除区域与真实的橡皮大小不一致&#…

资深私域运营必知的100个专业名词!

来源 | 晏涛三寿 &#xff08;ID&#xff1a;yantao-219&#xff09; 作者 | 晏涛 如今私域相关人才进入了供不应求的状态&#xff0c;不少企业开始设置专门的岗位&#xff0c;私域运营也成为了招聘市场中的“香饽饽”。 但是想要成为一名优秀的私域运营并不容易&#xff0c;…