WPF知识点全攻略03- XAML
XAML 是一种声明性标记语言,XAML 是一种基于 XML 并对 XML 结构规则进行了扩展。
XAML特点:
- 定义应用程序的界面元素
- 显示的声明WPF资源(样式、模板、动画等)
- 可扩展性(自定义UI控件)
- 集中关注于界面的设计和实现(UI和逻辑分离)
- 简单易懂,结构清晰(和xml、html类似)
XAML原则:
- XAML是大小写区分的,元素和属性的名称必须严格区分大小写;
- 所有的属性值,无论它是什么数据类型,都必须包含在双引号中;
- 所有的元素都必须是封闭的;如<Button …/> <Button>…</Button>;
- 最终的XAML文件也必须是合适的XML文档。
XAML命名空间
XAML里面的元素对应着.NET里面的类,但是只提供类名是不够的,XAML解析器还需要知道这个类位于哪个.NET名称空间,这样解析器才能够正确的识别XAML的元素。
xmlns特性是XML中的一个特殊特性,它专门用来声明命名空间。一旦声明一个命名空间,在文档中的任何地方都可以使用该命名空间。默认生成的四条引用如下:
1、xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
是Windows 10 的核心命名空间。包含了大部分用来构建用户界面的控件类。该名称空间的声明没有使用命名空间前缀,所以他成为整个文档的默认命名空间。所以没有前缀的元素都是自动位于这个命名空间下。
2、xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
它包含了XAML的实用特性。该名称空间被映射为前缀为x。
3、xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
该命名空间引用Expression Blend辅助设计类库,对Visual Studio和Expression Blend视图设计模式提供支持,其实际设计中主要提供设计视图页面尺寸定制。
4、xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
该命名空间引用XAML语言辅助类库,对XAML提供辅助设计支持,主要功能是为XAML语法解析器提供辅助解释功能,例如,使用mc:Ignorable=“d”告知XAML解析器以“xmlns:d”为前缀的元素引用在运行时被忽略。
使用其他类,可参考如下方式:
xmlns:sys="clr-namespace:System;assembly=System" //引用系统类
xmlns:local="clr-namespace:Person" //引用自定义类
xmlns:customlib="clr-namespace:Library1;assembly=Library" //引用外部 DLL
XML命名空间的名称和任何特定的.NET名称空间都不匹配。这种设计的原因有以下两个。
第一个原因:XML命名空间通常是URI。这些URI开起来像是在指定Web上的位置,但实际不是。通过使用URI格式的命名空间,不同的XML文档格式就会互相区分开来,作为唯一的标识符,表示这是创建在某个特定环境下的XML文档。
第二个原因:XAML中使用的XML命名空间和.NET命名空间不是一一对应的,如果一一对应的花,会显著增加XAML文档的复杂程度。XAML将这些.NET命名空间组合到单个XML命名空间中。
WPF知识点全攻略03- XAML的更多相关文章
- WPF知识点全攻略00- 目录
知识点目录如下: 1.WPF相对WinFrom的优缺点 2.WPF体系结构 3.XAML 4.XAML页面布局 5.XAML内容控件 6.WPF中的“树” 7.Binding 8.依赖属性 9.附加属 ...
- WPF知识点全攻略10- 路由事件
路由事件是WPF不得不提,不得不会系列又一 先来看一下他的定义: 功能定义:路由事件是一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件. 实现定义:路由事件是一个 C ...
- WPF知识点全攻略09- 附加属性
附加属性也是一种特殊的依赖属性. Canvas中的Canvas.Left,Canvas.Top ,DockPanel中DockPanel.Dock等就是附加属性. 更加.NET类属性的写法经验.这个中 ...
- WPF知识点全攻略07- 数据绑定(Binding)
数据绑定是WPF不得不提,不得不会系列之一 数据绑定简言之,就是把数据源的数据绑定到目标对象的属性上.目标对象可以是承自DependencyProperty的任何可访问的属性或控件,目标属性必须为依赖 ...
- WPF知识点全攻略06- WPF逻辑树(Logical Tree)和可视树(Visual Tree)
介绍概念之前,先来分析一段代码: xaml代码如下: <Window x:Class="WpfApp1.MainWindow" xmlns="http://sche ...
- WPF知识点全攻略08- 依赖属性
依赖属性是WPF不得不提,不得不会系列又一 先来看一下,自定义依赖属性的写法 public static readonly DependencyProperty IconProperty = Depe ...
- WPF知识点全攻略05- XAML内容控件
此处简单列举出布局控件外,其他常用的控件: Window:WPF窗口 UserControl:用户控件 Page:页 Frame:用来浏览Page页 Border:嵌套控件,提供边框和背景. Butt ...
- WPF知识点全攻略02- WPF体系结构
WPF体系结构图: PersentationFramework.dll包含WPF顶层的类型,包括哪些表示窗口.面板以及其他类型控件的类型.他还实现了高层编程抽象,如样式.开发人员直接使用的大部分类都来 ...
- WPF知识点全攻略01- WPF相对WinFrom的优缺点
对比WPF和WinFrom前,先来了解下GUI现阶段在用的其他一些开发技术: MFC:微软基础类库,以C++的形式封装了Windows API,加上一些实用工具类. QT:奇趣科技开发的跨平台C++图 ...
随机推荐
- SqlServer2012——快照
1.数据库快照 优点: 维护历史数据以生成报表.由于数据库快照可提供数据库的静态视图,因而可以通过快照访问特定时间点的数据. 将查询实施在数据库的快照上,可以释放主体数据库上的资源. 数据库快照的限制 ...
- 服务迁移之路 | Spring Cloud向Service Mesh转变
一.导读 Spring Cloud基于Spring Boot开发,提供一套完整的微服务解决方案,具体包括服务注册与发现,配置中心,全链路监控,API网关,熔断器,远程调用框架,工具客户端等选项中立的开 ...
- perl C/C++ 扩展(三)
第三讲扩展库使用c++实现,在调用函数后,返回对象变量,perl 能正确使用所有对象成员 使用h2xs 命令生成初始文件 h2xs -A -n three_test 登录目录 cd three_tes ...
- mysql之SQL入门与提升(四)——终结篇,函数
一.SQL Aggregate (聚合)函数 SQL Aggregate 函数计算从列中取得的值,返回一个单一的值. AVG() - 返回平均值 COUNT() - 返回行数 FIRST() - 返回 ...
- bzoj4300 绝世好题 【dp】By cellur925
题目描述: 给定一个长度为\(n\)的数列\(a\),求\(a\)的子序列\(b\)的最长长度,满足bi&bi-1!=0(\(2<=i<=len\)). 90分做法: 并没有部分分 ...
- (十二)SpringBoot 设置定时任务
一:创建定时任务 创建core→tesks→tesk.java package com.example.demo.core.tasks; import org.springframework.sche ...
- 慕课笔记-Java入门第一季
[初步复习Java编程基础,记录知识盲点和遗漏点] 1.switch语法 switch(表达式){ case 值1: 执行代码块1; break; case 值2: 执行代码块12; break; c ...
- nacos启动
nacos下载 https://github.com/alibaba/nacos 1.执行数据库脚本 2.修改配置文件application.propertiesspring.datasource.p ...
- canvas常用画法整理
代码Canvas.htm <!DOCTYPE html> <html lang="en"> <head> <title>canvas ...
- C# 获取当前ip
1.获取局域网ip IPAddress ipAddr = Dns.Resolve(Dns.GetHostName()).AddressList[0];//获得当前IP地址 string ip=ipAd ...