一个基于Net Core3.0的WPF框架Hello World实例
一个基于Net Core3.0的WPF框架Hello World实例
1.创建WPF解决方案
1.1 创建Net Core版本的WPF工程


1.2 指定项目名称,路径,解决方案名称

2. 依赖库和4个程序文件介绍

2.1 框架依赖库
依赖Microsoft.NETCore.App跟Microsoft.WindowsDesktop.App.WPF
2.2 生成文件说明
生成4个文件App.xaml,App.xaml.cs,MainWindow.xaml,MainWindow.xaml.cs
2.2.1 App.xaml
App.xaml设置应用程序的起始文件与资源。这里的资源一般指:
- 其他xaml样式文件的路径;
- 设置主题色,背景色,窗体样式;
- 按钮样式,菜单样式;
- 自定义弹出样式,自定义滚动条宽度;
......等等
App.xaml文件内容如下:
<Application x:Class="IBMSManager.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:IBMSManager"
StartupUri="MainWindow.xaml">
<Application.Resources>
系统资源定义区
</Application.Resources>
</Application>
- Application x:Class="IBMSManager.App" 表示Application后台类
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 表示WPF应用程序的默认命名空间映射
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 映射可扩展应用程序标记语言(XAML)的扩展命名空间,通常将其映射为X前缀
- xmlns:local="clr-namespace:IBMSManager" 项目的名称就是IBMSManager
- StartupUri="MainWindow.xaml" 表示要启动的应用窗体
2.2.2 App.xaml.cs
App.xaml的后台文件,集成自System.Windows.Application,用于处理整个WPF应用程序相关的设置。
2.2.3 MainWindow.xaml
WPF应用程序界面与XAML设计文件
<Window x:Class="IBMSManager.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:IBMSManager"
mc:Ignorable="d"
Title="IBMSManager" Height="450" Width="800">
<Grid>
</Grid>
</Window>
- Windows对象实例基类
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"设计时的状态的命名空间
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"标记兼容性相关的命名空间
- mc:Ignorable="d",d:DesignWidth是设计时的,所以,Ignorable="d"就是告诉编译器在实际运行时,忽略设计时设置的值。
- Title="MainWindow" Height="450" Width="800" 属性设置,这里讲Title改为IBMSManager
- 用来划分页面的分割与区域,填放按钮等页面元素
2.2.4 MainWindow.xaml.cs
MainWindow.xaml的后台文件,集成自System.Windows.Window,用于编写MainWindow.xaml 的交互逻辑代码
3. Hello World实例
3.1 拖动按钮控件到WPF窗体中


MainWindow.xaml文件中会自动添加如下代码
<Grid>
<Button Content="Button" HorizontalAlignment="Right" Margin="0,0,554,254" VerticalAlignment="Bottom"/>
</Grid>
代码主要在Grid标签中描述了按钮的属性
3.2 设计时中双击按钮添加按钮事件

MainWindow.xaml文件中会自动添加Click="Button_Click
<Grid>
<Button Content="Button" HorizontalAlignment="Right" Margin="0,0,554,254" VerticalAlignment="Bottom" Click="Button_Click"/>
</Grid>
后台MainWindow.xaml.cs文件中自动添加了事件处理函数
private void Button_Click(object sender, RoutedEventArgs e)
{
}
3.3 事件处理函数中添加消息提示框
点击按钮后,出现消息提示框Hello World。
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Hello World!");
}
3.4 效果如下

一个基于Net Core3.0的WPF框架Hello World实例的更多相关文章
- .Net Core3.0 WebApi 项目框架搭建 五: 轻量型ORM+异步泛型仓储
.Net Core3.0 WebApi 项目框架搭建:目录 SqlSugar介绍 SqlSugar是国人开发者开发的一款基于.NET的ORM框架,是可以运行在.NET 4.+ & .NET C ...
- .Net Core3.0 WebApi 项目框架搭建 四:JWT权限验证
.Net Core3.0 WebApi 项目框架搭建:目录 什么是JWT 根据维基百科定义,JWT(读作 [/dʒɒt/]),即JSON Web Tokens,是一种基于JSON的.用于在网络上声明某 ...
- Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架
Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...
- 如何创建一个基于 .NET Core 3 的 WPF 项目
在 Connect(); 2018 大会上,微软发布了 .NET Core 3 Preview,以及基于 .NET Core 3 的 WPF:同时还发布了 Visual Studio 2019 预览版 ...
- Swift:一个基于.NET Core的分布式批处理框架
Swift是什么 从文章的标题可知:此Swift非Apple那个Swift,只是考虑这个词的含义比较适合. Swift是一个基于.NET Core的分布式批处理框架,支持将作业分割后分发到多台服务器并 ...
- .Net Core3.0 WebApi 项目框架搭建 一:实现简单的Resful Api
.Net Core3.0 WebApi 项目框架搭建:目录 开发环境 Visual Studio 2019.net core 3.1 创建项目 新建.net core web项目,如果没有安装.net ...
- .Net Core3.0 WebApi 项目框架搭建 二:API 文档神器 Swagger
.Net Core3.0 WebApi 项目框架搭建:目录 为什么使用Swagger 随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染.后端分离的形态,而且前端技术和后端技 ...
- .Net Core3.0 WebApi 项目框架搭建 三:读取appsettings.json
.Net Core3.0 WebApi 项目框架搭建:目录 appsettings.json 我们在写项目时往往会把一些经常变动的,可能会变动的参数写到配置文件.数据库中等可以存储数据且方便配置的地方 ...
- .Net Core3.0 WebApi 项目框架搭建 五:仓储模式
.Net Core3.0 WebApi 项目框架搭建:目录 理论介绍 仓储(Respository)是存在于工作单元和数据库之间单独分离出来的一层,是对数据访问的封装.其优点: 1)业务层不需要知道它 ...
随机推荐
- 认识MongoDB复制集
从这一篇开始,我们要踏上MongoDB进阶之路啦,想想还有点小开心呢.一筐猪镇楼. 引入复制集 我们先来想一个场景,如果本地项目使用MongoDB,都是下载,安装,连接一条龙服务.这实际也就是 ...
- Python IAQ中文版 - Python中少有人回答的问题
Python中少有人回答的问题 The Python IAQ: Infrequently Answered Questions 1 Q: 什么是"少有人回答的问题(Infrequently ...
- CNN之yolo目标检测算法笔记
本文并不是详细介绍yolo工作原理以及改进发展的文章,只用做作者本人回想与提纲. 1.yolo是什么 输入一张图片,输出图片中检测到的目标和位置(目标的边框) yolo名字含义:you only lo ...
- opencv之膨胀与腐蚀
腐蚀和膨胀 Erosion/Dilation erosion/dilation,用白话说,就是让图像亮的区域收缩和扩张. 原理 我们定义一个卷积核矩阵.这个矩阵可以是任何形状的,但通常而言,是矩形或者 ...
- node 利用命令行交互生成相应模板
目录 readline 实现 使用process实现 使用 inquirer 调用的生成模板方法 (generator 方法) 创建时间:2019-10-15 测试环境:win10 node-v10. ...
- bugku 各种·绕过
点开是一段PHP的代码,先来审计一波代码. 发现将uname和passwd用sha1进行了加密,那么我们只要绕过这个函数构造相等就可以了. 可以使这两个值sha1的值相等,但他们本身的值又不等.(想详 ...
- SpringBoot应用进阶
一.表单验证 Controller接收一个对象数据的表单,如下: 需要对表单friend里的age属性做一个限制,如下 第一个是最小值,第二个是出错时报的错误信息 怎么知道验证结果呢?如下: 二.AO ...
- Java虚拟机重点知识归纳总结
一. JVM内存分区 分为程序计数器.虚拟机栈.本地方法栈.Java堆.方法区5个区域 其中Java堆和方法区是线程共享的,虚拟机栈.本地方法栈.程序计数器是线程隔离的. 程序计数器: 1.可 ...
- [书籍翻译] 《JavaScript并发编程》第五章 使用Web Workers
本文是我翻译<JavaScript Concurrency>书籍的第五章 使用Web Workers,该书主要以Promises.Generator.Web workers等技术来讲解Ja ...
- PHP 利用闭包偷窥马对人类的想法
<?php /** * reference:http://www.php.net/manual/en/reflectionmethod.getclosure.php * Learn this a ...