开始对WPF动手,从0开始一步一步深入学习

1)参考文档:msdn、《WPF编程宝典:使用C#2012和NET 4.5 第4版》

2)开发工具:Microsoft Visual Studio Enterprise 2019 Version 16.3.10——en-US(说白了就是跟着最新版一直更新就OK了)

3)Framework:.NET Core 3.0(好像WPF只有2019下才能使用.NET Core,其它Visual Studio版本的开发人员还是选择.NET Framework 4.5吧,跟参考书一致,避免意外问题)

3)第一个项目(Hello World):

1、vs2019打开后,选择Create a new  project,

弹出窗体选择模板WPF APP(.NET Core)

输入解决项目名称、项目路径和解决方案名称,点击Create

2、添加一个Button控件和一个TextBox控件,修改TextBox名称为txtContent,双击Button控件进入代码编辑,又是熟悉的后台C#代码编辑模式了!窗体设计界面及后台代码如下图:

至此,代码编辑完毕,F5一下,界面和结果一如既往的熟悉,Hello World好久不见,调试运行结果如下图:

4)代码分析

后台代码实在是太简单了,就不多分析了,只要有C#基础的都明白(没C#基础的请自行学习),这里就只分析一下xmal代码和.NET Core在项目中的部分代码

xaml部分:

xaml简介:xaml是一种类似xml的界面交互设计语言,它比xml高级(above xml -> xaml),语法类似于ASP.NET

源代码是这样的

<Window x:Class="Hello_World.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:Hello_World"
mc:Ignorable="d"
Title="MainWindow" Height="" Width="">
<Grid>
<Button Content="Button" HorizontalAlignment="Left" Margin="326,338,0,0" VerticalAlignment="Top" Height="" Width="" Click="Button_Click"/>
<TextBox x:Name="txtContent" HorizontalAlignment="Left" Margin="298,266,0,0" Text="TextBox" TextWrapping="Wrap" VerticalAlignment="Top" Width="" Height=""/>
</Grid>
</Window>

这段代码的意思基本上就是有这么一个Window,Window里放置了一个Grid,Grid里放置了一个Button和一个TextBox

其中Window的属性标签中x:Class="Hello_World.MainWindow"代表这个Window和后台代码中的Hello_World.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:Hello_World",以上这些都是xml的namespace,一般都不用动,用到时引入就行,记不住的话please Baidu,剩下的属性没啥可说的了,就是Title、Height、Width、Content之类的了,自己改改试试就知道是做什么的了,唯一说一点的是这些属性都可以用类似Winform的控件的属性设计器进行修改

<Application x:Class="Hello_World.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Hello_World"
StartupUri="MainWindow.xaml">
<Application.Resources> </Application.Resources>
</Application>

这段代码在App.xaml中,相当于winform程序中的Program.cs的地位,它指示了最终编译后的程序启动后会进入哪个界面(StartupUri="MainWindow.xaml"),同时也为自己新建了一个类

.NET Core部分:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

  <PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.</TargetFramework>
<RootNamespace>Hello_World</RootNamespace>
<UseWPF>true</UseWPF>
</PropertyGroup> </Project>

其实就是项目的一些属性和信息,指定了部分配置项目,看内容就知道意思了,一个是项目输出类型(OutputType),一个是项目目标框架(TargetFramework),一个是根命名空间(RootNamespace),最后一个是指定使用.NET Core的WPF配置项(UseWPF)

WPF入门(1)的更多相关文章

  1. WPF入门:数据绑定

    上一篇我们将XAML大概做了个了解 ,这篇将继续学习WPF数据绑定的相关内容 数据源与控件的Binding Binding作为数据传送UI的通道,通过INotityPropertyChanged接口的 ...

  2. WPF入门教程系列二十三——DataGrid示例(三)

    DataGrid的选择模式 默认情况下,DataGrid 的选择模式为“全行选择”,并且可以同时选择多行(如下图所示),我们可以通过SelectionMode 和SelectionUnit 属性来修改 ...

  3. WPF入门教程系列三——Application介绍(续)

    接上文WPF入门教程系列二——Application介绍,我们继续来学习Application 三.WPF应用程序的关闭 WPF应用程序的关闭只有在应用程序的 Shutdown 方法被调用时,应用程序 ...

  4. WPF入门教程系列二——Application介绍

    一.Application介绍 WPF和WinForm 很相似, WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只 ...

  5. WPF入门教程系列(二) 深入剖析WPF Binding的使用方法

    WPF入门教程系列(二) 深入剖析WPF Binding的使用方法 同一个对象(特指System.Windows.DependencyObject的子类)的同一种属性(特指DependencyProp ...

  6. WPF入门教程系列(一) 创建你的第一个WPF项目

    WPF入门教程系列(一) 创建你的第一个WPF项目 WPF基础知识 快速学习绝不是从零学起的,良好的基础是快速入手的关键,下面先为大家摞列以下自己总结的学习WPF的几点基础知识: 1) C#基础语法知 ...

  7. WPF入门教程系列一

    WPF入门教程 一.  前言  公司项目基于WPF开发,最近项目上线有点空闲时间写一篇基于wpf的基础教材,WPF也是近期才接触,学习WPF也是在网上查资料与微软的MSDN进行学习,写本博客的目为了温 ...

  8. WPF入门(四)->线形区域Path内容填充之填充图(ImageBrush)

    原文:WPF入门(四)->线形区域Path内容填充之填充图(ImageBrush) 前面我们提到了LinearGradientBrush可以用来画渐变填充图,那么我们同时也可以使用ImageBr ...

  9. WPF入门(四)->线形区域Path内容填充之渐变色(LinearGradientBrush)

    原文:WPF入门(四)->线形区域Path内容填充之渐变色(LinearGradientBrush) 前面我们介绍到,Path对象表示一个用直线或者曲线连接的图形,我们可以使用Path.Data ...

  10. WPF入门(三)->几何图形之不规则图形(PathGeometry) (2)

    原文:WPF入门(三)->几何图形之不规则图形(PathGeometry) (2) 上一节我们介绍了PathGeometry中LineSegment是点与点之间绘制的一条直线,那么我们这一节来看 ...

随机推荐

  1. MarkDown语法使用(效果版本)

    function syntaxHighlighting() { var n = 33; var s = "hello, こんにちは"; console.log(s); } plai ...

  2. ThreadLocal原理分析

    本文结构 ThreadLocal简介 (简要说明ThreadLocal的作用) ThreadLocal实现原理(说明ThreadLocal的常用方法和原理) ThreadLocalMap的实现 (说明 ...

  3. Java——异常处理,数据库连接

    在学习数据库连接时看到try(){}结构,查了一下写在这里: import java.sql.Connection; import java.sql.DriverManager; import jav ...

  4. redis使用技巧十连胜,学会工作六到飞起

    Redis 在当前的技术社区里是非常热门的.从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路. 随之而来的一系列最佳实践,使得大多数人可以正确地 ...

  5. Rocket - debug - TLDebugModuleInner - DMSTATUS

    https://mp.weixin.qq.com/s/GyGriFyeq_7Z3xOjKn56Mg 简单介绍TLDebugModuleInner中DMSTATUS寄存器的实现. 1. DMSTATUS ...

  6. jchdl - RTL实例 - MOS6502 SoC

    https://mp.weixin.qq.com/s/H2UBmZa9fpM6_FM2_MucTQ   实现一个SoC作为顶层模块,包含Cpu.Mem两个子模块,并驱动运行.   参考链接 https ...

  7. JavaScript 引用数据类型

    目录 1. 问题描述 2. 原因分析 3. React 中的引用数据类型 4. 业务场景 5. 参考资料 1. 问题描述 今天在写一个代码题时候, 有一个BUG 导致自己停滞好久, 该BUG 可以描述 ...

  8. Maven_setting文件/解释

    setting文件解释: setting.xml配置文件 maven的配置文件settings.xml存在于两个地方: 1.安装的地方:${M2_HOME}/conf/settings.xml 2.用 ...

  9. Linux kernel学习(序)

    伟大的Linux kernel有几大重要模块: 1.文件系统(File System) 2.进程调度(Process Scheduler) 3.内存管理(Memory Management) 4.进程 ...

  10. 工业级CC1125模块有哪些优势?主要应用领域?

    CC1125无线模块是基于 TI 的 CC1125无线收发芯片设计,是一款完整的.体积小巧的.低功耗的无线收发模块.是 TI Chipcon 推出的 ISM 频段高性能无线收发芯片之一,最大输出功率可 ...