C# 中XML XAML WPF的学习
2017-12-22 08:49
281 查看
WPF:Windows Presentation F
XAML:Extensible Application Markup Language
XAML文档定义了WPF应用程序中组成窗口的面板、按钮和各种控件的布局。开发和美工设计界面可以独立起来。
XML:指可扩展标记语言(Extensible Markup Language),XML被设计为传输和存储数据,其焦点是数据的外观。
VS添加XML。新建项目中找不到XML此项文件,但在新建文件中有。
该文档仅含两个元素:顶级的window元素以及一个grid元素,window元素代表整个窗口,在Grid元素中可以放置所有控件。
</Window>标签关闭了Window元素,文档结束。
Title这行代码:每个特性对应Window类的一个单独属性。告诉WPF创建标题为“MainWindow”的窗口,并使窗口的大小为300*300单位。WPF中使用可进行缩放以适应不同显示器分辨率的设备无关单位。
xmlns特性是XML中的一个特殊特性,它专门用来声明名称空间。这段标记声明了两个名称空间,在创建的所有WPF XAML文档中都会使用这两个名称空间:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"是WPF核心名称空间。包含了所有WPF类,包括用来构建用户界面的控件,此处声明没有使用名称空间前缀,其成为整个文档的默认名称空间。除非另行指明,每个元素自动位于这个名称空间。
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"是XAML名称空间。包含各种XAML使用特性,这些特性可影响文档的解释方式。该名称空间被映射为前缀x,意味着可通过在元素名称之前放置名称空间前缀x来使用该名称空间。
Visual Studio自动创建可以放置事件处理代码的部分类,InitializeComponent()当创建类的一个实例时,默认构造函数调用InitializeComponent()方法,此方法不可删除,为窗口类添加另一个构造函数,也要确保调用此方法。InitializeComponent()方法的所有工作就是调用System.Windows.Application类的LoadComponent()方法。LoadComponent()方法从程序集中提取BAML(编译过的XAML),并用它来构建用户界面。当解析BAML时,它会创建每个控件对象,设置其属性,并关联所有事件处理程序。
命名元素
在代码隐藏类中,希望通过代码操作控件。如需要读取或修改属性,或自由地关联以及断开事件处理程序。若要实现,控件必须包含XAML Name特性。
可在XAML文档中手动增加关联名称(使用x:前缀)
或者在设计器中Properties中设置其Name属性。
代码中就可以直接使用grid1:MessageBox.Show(string.Format("The grid is {0}", grid1.ActualHeight));
RuntimeNameProperty特性指示哪个属性的值将作为该类型的实例的名称。FrameworkElement类使用RuntimeNameProperty特性进行了修饰。
传统的Windows窗体应用程序中,每个控件都有名字。WPF中,没有此要求,当不需要元素名称时通常会省略。
Grid控件是WPF中最常见的用于安排布局的工具
任何XAML标签集合都可以用一系列执行相同任务的代码语句代替。
标记扩展
使用标记扩展的情况:1、希望将属性值设置为一个已经存在的对象,或者可能希望通过将一个属性绑定到另一个控件来动态地设置属性值。
附加属性
是可用于多个控件但在另一个类中定义的属性。在WPF中,附加属性常用于控件布局。
事件
XAML用来修改界面,而非整个用户界面手动编写XAML。
1、不应显式设定元素(如控件)的尺寸;可以设置最大和最小尺寸来限制。
2、不应使用屏幕坐标指定元素的位置。需要在元素之间添加空白空间,可使用margin属性。
3、布局容器的子元素“共享”可用的空间;
4、可嵌套的布局容器。典型的使用Grid面板为开始,Grid面板是WPF中功能最强大的容器。
滚动是由特定的内容控件ScrollViewer提供。
background属性是用于为面板背景着色的画刷,如果想接收鼠标事件,就必须将该属性设置为非空值(如果想接收鼠标事件,又不希望显示固定颜色的背景,将背景色设置为透明即可。
Border控件
其属性用来设置边框的背景、颜色,大小和宽度,圆角等。
WrapPanel面板
控制界面的一小部分布局。
DockPanel
沿着外边沿拉伸所包含的控件。
..
.....
..
XAML:Extensible Application Markup Language
XAML文档定义了WPF应用程序中组成窗口的面板、按钮和各种控件的布局。开发和美工设计界面可以独立起来。
XML:指可扩展标记语言(Extensible Markup Language),XML被设计为传输和存储数据,其焦点是数据的外观。
VS添加XML。新建项目中找不到XML此项文件,但在新建文件中有。
<Window x:Class="WpfLearn.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> </Grid> </Window>
该文档仅含两个元素:顶级的window元素以及一个grid元素,window元素代表整个窗口,在Grid元素中可以放置所有控件。
</Window>标签关闭了Window元素,文档结束。
Title这行代码:每个特性对应Window类的一个单独属性。告诉WPF创建标题为“MainWindow”的窗口,并使窗口的大小为300*300单位。WPF中使用可进行缩放以适应不同显示器分辨率的设备无关单位。
xmlns特性是XML中的一个特殊特性,它专门用来声明名称空间。这段标记声明了两个名称空间,在创建的所有WPF XAML文档中都会使用这两个名称空间:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"是WPF核心名称空间。包含了所有WPF类,包括用来构建用户界面的控件,此处声明没有使用名称空间前缀,其成为整个文档的默认名称空间。除非另行指明,每个元素自动位于这个名称空间。
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"是XAML名称空间。包含各种XAML使用特性,这些特性可影响文档的解释方式。该名称空间被映射为前缀x,意味着可通过在元素名称之前放置名称空间前缀x来使用该名称空间。
namespace WpfLearn { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); }
Visual Studio自动创建可以放置事件处理代码的部分类,InitializeComponent()当创建类的一个实例时,默认构造函数调用InitializeComponent()方法,此方法不可删除,为窗口类添加另一个构造函数,也要确保调用此方法。InitializeComponent()方法的所有工作就是调用System.Windows.Application类的LoadComponent()方法。LoadComponent()方法从程序集中提取BAML(编译过的XAML),并用它来构建用户界面。当解析BAML时,它会创建每个控件对象,设置其属性,并关联所有事件处理程序。
命名元素
在代码隐藏类中,希望通过代码操作控件。如需要读取或修改属性,或自由地关联以及断开事件处理程序。若要实现,控件必须包含XAML Name特性。
可在XAML文档中手动增加关联名称(使用x:前缀)
<Grid x:Name="grid1"> </Grid>
或者在设计器中Properties中设置其Name属性。
代码中就可以直接使用grid1:MessageBox.Show(string.Format("The grid is {0}", grid1.ActualHeight));
RuntimeNameProperty特性指示哪个属性的值将作为该类型的实例的名称。FrameworkElement类使用RuntimeNameProperty特性进行了修饰。
传统的Windows窗体应用程序中,每个控件都有名字。WPF中,没有此要求,当不需要元素名称时通常会省略。
Grid控件是WPF中最常见的用于安排布局的工具
任何XAML标签集合都可以用一系列执行相同任务的代码语句代替。
标记扩展
使用标记扩展的情况:1、希望将属性值设置为一个已经存在的对象,或者可能希望通过将一个属性绑定到另一个控件来动态地设置属性值。
<x:Static Member="SystemColors.ActiveCaptionBrush"> </x:Static>
附加属性
是可用于多个控件但在另一个类中定义的属性。在WPF中,附加属性常用于控件布局。
事件
XAML用来修改界面,而非整个用户界面手动编写XAML。
WPF布局原则
几个原则1、不应显式设定元素(如控件)的尺寸;可以设置最大和最小尺寸来限制。
2、不应使用屏幕坐标指定元素的位置。需要在元素之间添加空白空间,可使用margin属性。
3、布局容器的子元素“共享”可用的空间;
4、可嵌套的布局容器。典型的使用Grid面板为开始,Grid面板是WPF中功能最强大的容器。
滚动是由特定的内容控件ScrollViewer提供。
background属性是用于为面板背景着色的画刷,如果想接收鼠标事件,就必须将该属性设置为非空值(如果想接收鼠标事件,又不希望显示固定颜色的背景,将背景色设置为透明即可。
Border控件
其属性用来设置边框的背景、颜色,大小和宽度,圆角等。
WrapPanel面板
控制界面的一小部分布局。
DockPanel
沿着外边沿拉伸所包含的控件。
..
.....
..
相关文章推荐
- WPF学习:XAML概述
- C#温故而知新学习系列之XML编程—XmlSerializer类把复杂对象序列化为XML文档(六)
- xml学习总结收藏-C# 操作Xml,Javascript操作xml
- C#/WPF学习笔记:class 与 struct
- C#学习笔记之对象和Xml文档之间的转换
- C#温故而知新学习系列之XML编程—6-XmlSerializer类把复杂对象序列化为XML文档
- XAML C# WPF
- Oracle 远程访问配置 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标 C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素” C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper Decimal类型截取保留N位小数向上取, Decimal类型截取保留N位小数并且不进行四舍五入操作
- C#学习笔记之向Xml文档追加信息
- C#小数点输出格式+推荐内容:XML操作和线程学习
- xml学习(6) 在c#Xpath实例
- WPF学习笔记1:XAML之NameSpace
- C#学习笔记(12)——三种方法操作XML
- XAML C# WPF
- C#温故而知新学习系列之XML编程—5-XmlSerializer类把对象序列化为XML文档
- 关于XAML,C#和WPF的更多思考的更多思考
- 【从业余项目中学习1】C# 实现XML存储用户名密码(MD5加密)
- WPF学习---系统的学习XAML语法
- 【WPF】XAML引入资源和在C#代码中动态添加样式
- C#温故而知新学习系列之XML编程—XMLSerializer类把XML文档反序列化为对象(八)