WPF教程(六) XAML基础
来源:互联网 发布:mac无法安装pkg 编辑:程序博客网 时间:2024/06/05 18:19
在前面的章节,我们讨论了XAML是什么以及用它来做什么,那么如何用XAML来创建控件呢?接下来的例子,我们将会看到,用XAML创建一个控件,就和写它的名字一样简单,当然了,这个名字是用尖括号括起来的。譬如,按钮看起来是这样的:
<Button>XAML标签通过编写结束标签或者在开始标签之后加一个斜杠来结束:
<Button></Button>或者
<Button />
大部分控件允许你在开始标签和结束标签之间放置控件所需的内容,譬如,按钮控件允许你在开始标签和结束标签之间指定要显示的内容:
<Button>A Button</Button>
HTML是不区分大小写的,而XAML区分大小写,因为在.NET框架中,控件名字对应了一种类型。属性名称也一样,对应于控件的属性。下面是一个按钮,我们通过添加属性为其定义了两个特性:
<Button FontWeight="Bold" Content="A Button" />我们先把字体属性设置成了粗体,然后设置了内容属性,这个就跟在开始标签和结束标签之间编写内容一样。但是,所有属性也可以像这样定义,它们以主控件的子标签的形式,中间用点隔开:
<Button> <Button.FontWeight>Bold</Button.FontWeight> <Button.Content>A button</Button.Content></Button>结果跟上面的代码是一样的,都是只涉及语法。其实,很多控件的内容里允许放置除了文本之外的东西,如其他控件。下面的例子展示了在一个按钮里面显示不同颜色的文字,它在按钮的内容里用了一些文本框控件。:
<Button> <Button.FontWeight>Bold</Button.FontWeight> <Button.Content> <WrapPanel> <TextBlock Foreground="Blue">Multi</TextBlock> <TextBlock Foreground="Red">Color</TextBlock> <TextBlock>Button</TextBlock> </WrapPanel> </Button.Content></Button>
内容属性只能放一个子元素,所以我们使用了一个WrapPanel控件来存放不同颜色的文本块。容器(Panel,如WrapPanel),在WPF里面扮演了一个非常重要的角色,我们将在以后详细讲述它的细节。现在我们只要知道它是存放其他控件的容易就行了。
下面的标记更加精准的达成了和上面一样的效果,这是另外一种表述:
<Button FontWeight="Bold"> <WrapPanel> <TextBlock Foreground="Blue">Multi</TextBlock> <TextBlock Foreground="Red">Color</TextBlock> <TextBlock>Button</TextBlock> </WrapPanel></Button>
代码 vs XAML
上面的例子展示了XAML非常容易编写,但是有太多的方式可以去实现同一个目的。如果你还在为上面的例子用了那么多标记,只实现了一个带不同颜色文字的按钮而不爽的,那么来比较一下C#中的实现方法:
Button btn = new Button();btn.FontWeight = FontWeights.Bold;WrapPanel pnl = new WrapPanel();TextBlock txt = new TextBlock();txt.Text = "Multi";txt.Foreground = Brushes.Blue;pnl.Children.Add(txt);txt = new TextBlock();txt.Text = "Color";txt.Foreground = Brushes.Red;pnl.Children.Add(txt);txt = new TextBlock();txt.Text = "Button";pnl.Children.Add(txt);btn.Content = pnl;pnlMain.Children.Add(btn);当然上面的代码还可以写得更精简,还可以使用语法糖。然而结局对我来说还是一样:使用XAML描述界面更精简。
0 0
- WPF教程(六) XAML基础
- WPF教程(五) XAML是什么?
- WPF教程(七)XAML中的事件
- WPF教程(十)使用App.xaml
- WPF和XAML基础
- WPF (xaml) 属性
- WPF基础之XAML----(XAML 根元素和 xmlns,事件和 XAML 代码隐藏)
- C#进阶 WPF基础一 XAML控件基础、布局
- WPF指南之二(XAML概述)
- WPF指南之二(XAML概述)
- WPF:编译XAML(类等)
- WPF:编译XAML(类等)
- WPF 4.5和CSharp(2)-XAML
- (WPF)XAML 过程式代码
- WPF XAML 从零开始认识XAML
- WPF XAML 从零开始认识XAML
- 黑马程序员_WPF(WPF认识,Sender,C#基础加强类继承,集合,Xaml,控件通用属性)
- WPf学习------XAML 概述 (WPF)
- 使用OpenGL实现遮罩效果
- 带你读开源—ASP.NET_MVC(十五)
- 数据结构中的二叉搜索树
- leetCode练习(32)
- 利用阿里云提供的镜像快速更换本地的yum源
- WPF教程(六) XAML基础
- Raising Bacteria 细菌繁殖
- 抑郁症患者眼中的世界与自己是怎样的?
- 13个实用的Apache Rewrite重写规则
- poj 2941 Homogeneous Squares 解题报告
- 最优化理论中的常用背景知识
- Android studio 修改工程名、包名
- 归并排序
- C 字符串内排序(九度OJ 1054)