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

网站收藏功能360搜索引擎地址

网站收藏功能,360搜索引擎地址,wordpress 音频播放,数据还在吗1. 最简单的WPF应用 1.1. App.config1.2. App.xaml 和 App.xaml.cs1.3. MainWindow.xaml 和 MainWindow.xaml.cs 2. 正式开始分析 2.1. 声明即定义2.2. 命名空间 2.2.1. xaml的Property和Attribute2.2.2. xaml中命名空间2.2.3. partial关键字 学习WPF,肯定要先学…
  • 1. 最简单的WPF应用
    • 1.1. App.config
    • 1.2. App.xaml 和 App.xaml.cs
    • 1.3. MainWindow.xaml 和 MainWindow.xaml.cs
  • 2. 正式开始分析
    • 2.1. 声明即定义
    • 2.2. 命名空间
      • 2.2.1. xaml的Property和Attribute
      • 2.2.2. xaml中命名空间
      • 2.2.3. partial关键字

学习WPF,肯定要先学习XAML语法,说实话,XAML这种语言一点也不难。如果把XML看成是“父类”,那么XAML就是XML的一个派生类了,所以XML的概念在XAML中是通用的。

What?你不了解XML?没关系,反正我们是从头开始!

针对XAML文件,是可以进行“所见即所得”的可视化设计的。你在XAML代码上做的修改,只要是合乎语法的,那么在设计器里就会立刻反映出来(有时候需要刷新一下)。

如果你发现设计器里显示不出来了,那一定是XAML语句出了问题,最好想办法修正它。不然的话,在设计器里都看不到效果、只能运行起来看,这还是不是可视化编程了。。

1. 最简单的WPF应用

新建WPF窗体应用,默认有以下几个文件:

文章配图

1.1. App.config


<?xml version="1.0" encoding="utf-8" ?><configuration><startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /></startup>
</configuration>

其实就是一个xml文件,定义了.NET Framework的版本信息

1.2. App.xaml 和 App.xaml.cs

一个是UI元素代码,一个是后台交互逻辑代码,具体分析后面我们在看。


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

/// <summary>/// App.xaml 的交互逻辑/// </summary>public partial class App : Application{}

1.3. MainWindow.xaml 和 MainWindow.xaml.cs

一样的,一个UI元素代码,一个是后台交互逻辑代码


<Window x:Class="MyWPFDemo1.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:MyWPFDemo1"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Grid></Grid>
</Window>
/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}}

2. 正式开始分析

2.1. 声明即定义

首先我们要知道xaml语法中声明即定义,意思就是“见到元素就相当于创建实例”,MainWindow.xaml的主干是一个Window元素里包含着一个 Grid元素。

这段程序就是在定义一个Window类的实例,这个实例的一个组成部分是一个Grid类的实例。


<Window><Grid></Grid>
</Window>

2.2. 命名空间


<Window x:Class="MyWPFDemo1.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:MyWPFDemo1"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><Grid></Grid>
</Window>

上面看着很像主页地址的东西,它们都是些什么呢 ? 让我们来一个一个地分析 。

2.2.1. xaml的Property和Attribute

XAML是一种由XML派生而来的语言,所以很多XML中的概念在XAML是通用的。比如,使用标签声明一个元素 (每个元素对应内存中的一个对象) 时,需要使用起始标签和终止标签, 夹在起始标签和终止标签中的XAML代码表示是隶属于这个标签的内容。如果没有什么内容隶属于某个标签,则这个标签称为空标签,可以写为 。

为了表示同类标签中的某个标签与众不同,可以给它的特征 (Attribute) 赋值。 为特征赋值的语法如下:

● 非空标签:<Tag Atributel=Valuel Attribute2=Value2>Content</Tag>

● 空标签:<Tag Atributel=Valuel Attribute2=Value2></Tag>

在这里,有必要把Attribute和Property这两个词仔细地辨别一下。

这两个词的混淆由来已久。混淆的主要原因就是大多数中文译本里既把Atribute译为“属性 ”,也把Property译为“属性”。

其实,这两个词所表达的不是一个层面上的东西。

Property属于面向对象理论范畴。在使用面向对象思想编程的时候,常常需要对客观事物进行抽象,再把抽象出来的结果封装成类,类中用来表示事物状态的成员就是Property。比如要写一个模拟赛车的游戏,那么必不可少的就是对现实汽车的抽象。现实中的汽车身上会带有很多数据但在游戏中可能只关心它的长度、宽度、高度、重量、速度等有限的几个数据,例如,Car.Length,Car.Height,Car.Speed,这些都是Property的典型代表,将Property译为“属性”也很贴切。总结一句话就是:Property是针对对象而言的。

Attribute则是编程预约文法层面的东西。比如有两个同类的语法元素A和B,为了表示A与B不完全相同或者A与B在用法上有些区别,这时候就压针对A和B加一些Attribute。总结一句话:Attribute只与语言层面上的东西有关,与抽象出来的对象没有什么关系。因为Attribute是为了表示“区分”的,所以把它译为“特征”。

显然Attribute只是用来影响类在程序中的用法,而Property则对应着抽象对象身上的性状,他们根本不是一个层面上的东西。

2.2.2. xaml中命名空间

下面代码都是Window标签的Attribute:


x:Class="MyWPFDemo1.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:MyWPFDemo1"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"

其中Title,Height, Width一看就知道与Window对象的Property相对应。

中间xmlns(xml namespace的简写)是在声明名称空间,语法格式如下:

xmlns[:可选的映射前缀]=“名称空间”,xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"这个没有加映射前缀的名称空间称为“默认名称空间”,说明很多的wpf控件都是来自这个命名空间。

如果改为xmlns:w,那下面的Grid前面也需要加上w前缀。


<Window x:Class="MyWPFDemo1.MainWindow"xmlns:w="http://schemas.microsoft.com/winfx/2006/xaml/presentation"...Title="MainWindow" Height="450" Width="800"><w:Grid></w:Grid>
</Window>

总结一点就是上面这些xmlns同C#引用程序集的操作都是一个目的,都是为了引入自己需要的外部程序集。但是xaml里面引入的好像是个网页地址?其实把它copy到IE的地址栏里尝试跳转也不会打开网页。

这里只是XAML解析器的一个硬性编码(hard-coding),只要见到这些固定的字符串,就会把一系列必要的程序集(Assembly)和程序集中包含的NET名称空间引用进来。

哦,原来微软也有硬编码~

也不用太担心手写这些命名空间,IDE也是能有智能提示的。。

文章配图

2.2.3. partial关键字

一个类能够“掰成两半”来写,这要归功于partial这个关键字,使用这个关键字,可以把一个类的代码分散在多处来实现。

可问题又来了——XAML代码怎么和C#代码“对接”啊?不用担心微软的xaml解析器在背后把这件事完成了。因为XAML代码中没有逻辑,所以,解析XAML的大部分工作就是按照元素标签的描述把对象创建出来——比如,解析器见到有Grid标签出现,就会生成与C#代码new Grid()等价的代码。
最后,使用partial关键字,可以把一个类分拆在多处定义,只要各部分代码不冲突即可。显然,由XAML解析器生成的MainWindow类在声明时也使用了partial关键字,这样,由XAML解析成的类和C#文件里定义的部分就合二为一。正是由于这种partial机制,我们可以把类的逻辑代码留在.cs文件里,用C#语言来实现,而把那些与声明及布局UI元素相关的代码分离出去,实现UI与逻辑分离。

并且,用于绘制UI的代码(如声明控件类型的字段、设置它们的外观和布局等)也不必再使用C#语言使用XAML和XAML编辑工具就能轻松搞定!

至此,你应该对这个最简单的XAML程序了然于胸了。

XAML系列文章:
WPF1-从最简单的xaml开始

WPF2-在xaml为对象的属性赋值

WPF3-在xaml中引用其他程序集的名称空间

WPF4-代码后置

WPF5-x名称空间

http://www.mmbaike.com/news/107368.html

相关文章:

  • 手机网站建设的趋势汕头seo代理商
  • 网站要跟换域名怎么做企业网站排名优化
  • 做家政下载什么网站或什么群呢精准引流推广团队
  • 福州有做网站引流的吗百度竞价排名模式
  • 视频网站顶部效果怎么做的目前最新的营销方式有哪些
  • 国务院关于网站建设seo指的是搜索引擎营销
  • 做地方网站收益怎么样拼多多关键词排名查询工具
  • 聊城网站建设找谁网站流量查询服务平台
  • 安阳哪里做网站百度官方下载安装
  • 网站12栅格系统怎么做什么是网络推广员
  • 可口可乐网络营销案例长沙seo网络优化
  • 做销售的网站搜索软件排行榜前十名
  • 公司做了网站怎么做推广免费网站安全软件大全游戏
  • 网络工程师工资关键词seo排名优化
  • 做导航网站赚钱优化网站标题是什么意思
  • phpstorm做网站seo是什么意思知乎
  • 什么都不懂做网站百度官方优化指南
  • 福州做网站的公司信息发布平台推广有哪些
  • wordpress插件放那个文件夹长春网站优化体验
  • 网站制作模板深圳英文站seo
  • 上海建设工程安全质量监督站网站seo工具下载
  • 常州网站建设解决方案品牌推广宣传词
  • 学校网站建设分工网站服务器失去响应
  • 如何搭建网站教程曹操博客seo
  • 建筑网78广州网站优化平台
  • 国家市场监管总局官网网站友链交易交易平台
  • 小型网站开发要多少钱如何制作网页最简单的方法
  • 做ppt什么网站图片好aso推广优化
  • wordpress中文字体库关键词推广优化外包
  • 做网站 就上凡科建站seo站长工具下载