java的xaml_XAML概述
一:语法概述
1:XAML 对象元素
1
2
3
此示例指定了两个对象元素:(含有内容,后面有一个结束标记)和 (自结束形式,包含几个特性)
指定对象元素标记时会创建一条 XAML 处理指令来创建一个新实例。 每个实例都是在分析和加载 XAML 时通过调用基础类型的默认构造函数来创建的。
2:CLR的属性表示
①特性语法
②属性元素语法
1
2
3
4
5
6
7
8
9 This is a button10
11
3:集合语法
4:XAML 内容属性
XAML 指定了一个语言功能,通过该功能,一个类可以指定它的一个且仅一个属性为 XAML 内容属性。 该对象元素的子元素用于设置该内容属性的值。 换言之,仅对内容属性而言,您可以在 XAML 标记中设置该属性时省略属性元素,并在标记中生成更直观的父级/子级形式。
5:文本内容
有少量 XAML 元素可直接将文本作为其内容来处理。 若要实现此功能,必须满足以下条件之一:
类必须声明一个内容属性,并且该内容属性必须是可赋值给字符串的类型(该类型可以是 Object)。 例如,任何 ContentControl 都将 Content 用作其内容属性,并且其类型为 Object,这样就支持实际的 ContentControl(例如,Button)上的如下用法:Hello。
类型必须声明一个类型转换器,该类型转换器将文本内容用作其初始化文本。 例如,Blue。 这种情况实际上并不常见。
类型必须为已知的 XAML 语言基元。
6:内容属性和集合语法组合
First Button
Second Button
此例中,每个 Button 都是 StackPanel 的一个子元素。 这是一个简单直观的标记,其中出于两个不同的原因省略了两个标记。
省略的 StackPanel.Children 属性元素: StackPanel 从 Panel 派生。 Panel 将 Panel.Children 定义为其 XAML 内容属性。
省略的 UIElementCollection 对象元素: Panel.Children 属性采用类型 UIElementCollection,该类型实现 IList。 根据处理集合(例如 IList)的 XAML 规则,集合的元素标记可以省略。 (在这种情况下,UIElementCollection 实际无法实例化,因为它没有公开默认构造函数,这就是 UIElementCollection 对象元素以注释形式出现的原因。)
1
2
3
4 First Button
5 Second Button
6
7
8
7:事件
特性语法
Click Me!
对象元素、属性元素和特性名称均必须使用区分大小写的形式指定
值并不总是区分大小写。 值是否区分大小写将取决于与采用该值的属性关联的类型转换器行为,或取决于属性值类型。 例如,采用 Boolean 类型的属性可以采用 true 或 True 作为等效值,但只是因为将字符串转换为 Boolean 的本机 WPF XAML 分析器类型转换已经允许将这些值作为等效值。
XAML 将空格、换行符和制表符转化为空格,如果它们出现在一个连续字符串的任一端,则保留一个空格。
标记扩展是一个 XAML 语言概念。 当用于提供特性语法的值时,大括号({ 和 })表示标记扩展用法。 此用法指示 XAML 处理系统不要像通常那样将特性值视为一个文本字符串或者可转换为字符串的值。
1
2
3
4
5
6
7
8 ...9
10
11
12
13
14
15
16 ...17
18
19
20
上面的特性语法示例与下面更为详细的语法示例等效,但在下面的示例中,Margin 改为通过包含 Thickness 对象元素的属性元素语法进行设置。 而且设置 Thickness 的四个关键属性作为新实例的特性:
x: 前缀
x:Key:为 ResourceDictionary(或其他框架中的类似字典概念)中的每个资源设置唯一的键。 在典型的 WPF 应用程序标记中的所有 x: 用法中,x:Key 将可能占到 90%。
x:Class:向为 XAML 页提供代码隐藏的类指定 CLR 命名空间和类名。 必须具有这样一个类才能支持每个 WPF 编程模型的代码隐藏,而正是因此,即使没有资源,也几乎总是能看到映射的 x:。
x:Name:处理对象元素后,为运行时代码中存在的实例指定运行时对象名称。 通常,您将为 x:Name 经常使用 WPF 定义的等效属性。 此类属性特定映射到 CLR 后备属性,因此更便于进行应用程序编程,在应用程序编程中,您经常使用运行时代码从初始化的 XAML 中查找命名元素。 最常见的此类属性是 FrameworkElement.Name。 在特定类型中不支持等效的 WPF 框架级 Name 属性时,仍然可以使用 x:Name。 某些动画方案中会发生这种情况。
x:Static:启用一个返回静态值的引用,该静态值只能是一个 XAML 兼容属性。
x:Type:根据类型名称构造一个 Type 引用。 它用于指定采用 Type(例如 Style.TargetType)的特性,但属性经常具有本机的字符串到 Type 的转换功能,因此使用 x:Type 标记扩展用法是可选的。
下面是一个说明自定义前缀如何在 XAML 标记中工作的基本示例。 前缀 custom 在根元素标记中定义,并映射为随应用程序一同打包并可用于该应用程序的一个特定程序集。 此程序集包含 NumericUpDown 类型,实现该类型的目的是在支持常规 XAML 用法之外,还可以使用允许在 WPF XAML 内容模型的此特定点执行插入的类继承。 通过使用该前缀,此 NumericUpDown 控件的一个实例声明为对象元素,以便 XAML 分析器可找到包含该类型的 XAML 命名空间,从而找到包含该类型定义的后备程序集的位置。
>
...
Click Me!
1 namespaceExampleNamespace2 {3 public partial classExamplePage4 {5 void Button_Click(objectsender, RoutedEventArgs e)6 {7 Button b = e.Source asButton;8 b.Foreground =Brushes.Red;9 }10 }11 }
...Click to remove this button
void RemoveThis(objectsender, RoutedEventArgs e)
{
FrameworkElement fe= e.Source asFrameworkElement;if(buttonContainer.Children.Contains(fe))
{
buttonContainer.Children.Remove(fe);
}
}
I am on the left
I am on the right
java的xaml_XAML概述相关推荐
- java内存模型概述_Java内存模型-快速概述和注意事项
java内存模型概述 在计算中, 内存模型描述了线程如何通过内存交互,或更一般地,它指定了为分段内存或分页内存平台生成代码时允许编译器进行的假设. 在给定程序和该程序的执行跟踪的情况下,它实质上描述了 ...
- Java第一章java语言的概述
一.java语言的概述: 1.1dos命令 常用的dos命令: dir:列出当前目录下的文件以及文件夹 md:创建目录 rd:删除目录 cd:进入指定目录 cd..:退回到上一级目录 cd\:退回到根 ...
- Java集合框架概述及Collection接口方法讲解
Java集合框架概述 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象 的操作,就要对对象进行存储.另一方面,使用Array存储对象方面具有一些弊 端,而Java 集合就像一种容 ...
- Java基础----JAVA语言的概述和开发环境的搭配
01 JAVA语言的概述和开发环境的搭配 JAVA语言简介 创始人:詹姆斯.高斯林 历史:起初属于sun公司,由高斯林与其合伙人研发而出,用于在各种移动设备上进行程序开发设计,初始起名为green,后 ...
- (转)Hibernate框架基础——Java对象持久化概述
http://blog.csdn.net/yerenyuan_pku/article/details/52732990 Java对象持久化概述 应用程序的分层体系结构 基于B/S的典型三层架构 说 ...
- Java Portlet 规范概述
前言 1.portlet是一种类似servlet的规范. 2.servlet是web组件,portlet也是web组件. 参考 1.百度百科:portlet http://baike.baidu.co ...
- Java开发环境概述
1.1 Java开发环境概述 在开始学习Java编程之前,我们首先需要安装Java开发环境(JDK:Java开发工具包 Java Development Kit) 1.2 JDK下载和安装 下载并安装 ...
- java.beans包概述
title: java.beans包概述 date: 2019-02-09 21:17:05 tags: Java categories: Java java.beans包包含了开发bean相关的类, ...
- Java SE 基础概述(一)
Java SE基础概述 Java SE : Java Standard Edition Java ME : Java Mobile Edition Java EE : Java Enerprise E ...
最新文章
- AI版「按图索骥」,比猜画小歌更复杂的的AI交互游戏
- Javag工程师成神之路(2019正式版)
- 78. Subsets 子集
- Eclipse配置C++时的三个关键环境变量
- Java魔法类:Unsafe应用解析
- Python str字符串常用到的函数
- 正则表达式收集(转)
- SAP GUI 安全性 下载文件
- 堪比ps的mac修图软件 Pixelmator Pro 2.0.6中文版 支持Silicon M1
- Spring-AOP原理详解
- 算法设计与分析_《算法设计与分析》(2017年8月版)修订
- oracle 限制条数的查询
- 什么是前台?什么是中台?什么是后台?
- R语言实现结构方程模型
- Bootstrap-button btn样式
- MusicPlayerByService
- RocksDB 架构
- UVa 11062 Andy's Second Dictionary(刘汝佳紫书升级题)
- Fiddler 502问题
- win10下从源码运行Cura——环境配置(二次开发准备工作)
热门文章
- idea中springboot整合Axis2框架一
- java 文本框只能输入数字_怎么让文本框只能输入数字呢?
- 软件打包--Enigma Virtual Box和VNISEdit
- 所谓“著”、“编”和“注”
- mysql 语法 insert into set
- Fedora安装Hadoop
- 程序员Geek资源(工具/网站)
- 计算机毕业设计选题计算机毕业设计Android安卓类题目参考题目
- 中英文字幕转换成纯英文字幕
- JDBC中的executeQuery和executeUpdate