WPF真入门教程03--XAML介绍

一、窗体类基本概念

       对于WPF应用程序,在Visual Studio和Expression Blend中,自定义的窗体均继承System.Windows.Window类。用户通过窗口与 Windows Presentation Foundation (WPF) 独立应用程序进行交互。 窗口的主要用途是承载可视化数据并使用户可以与数据进行交互的内容。独立 WPF 应用程序使用 Window 类来提供它们自己的窗口。在 WPF 中,可以使用代码或 XAML 标记来实现窗口的外观和行为。我们这里定义的窗体也由这两部分组成:

1、 XAML文件(MainWindow.xaml),在这里面通常全部写UI的东西,包括窗口的外观,控件等。

2、窗口界面中的各种行为,则由后台代码文件(MainWindow.xaml.cs)决定。

二、XAML基本概念    

      XAML 是⼀种声明性标记语⾔。 应⽤于 .NET Core 编程模型时,XAML 简化了为 .NET Core 应⽤创建 UI 的过程。 XAML ⽂件是通常具有 .xaml 扩展名的 XML ⽂ 件。 可通过任何 XML 编码对⽂件进⾏编码,但通常以 UTF-8 编码。

       对象元素语法 是 XAML 标记语法,它通过声明 XML 元素来实例化 CLR 类或结 构。 此语法类似于其他标记语⾔(如 HTML)的元素语法。 单标签格式。 。 双标签格式。 【可嵌⼊其他的标签】 ⼀个 XAML ⽂件只能有⼀个根元素,这样才能同时作为格式正确的 XML ⽂件和有 效的 XAML ⽂件。 对于典型 WPF ⽅案,可使⽤在 WPF 应⽤模型中具有突出意义 的根元素(例如,⻚⾯的 Window 或 Page)。 在根标签下⾯有且只能有⼀个⼆级标签。在⼆级标签⾥⾯我们可以写多个三级 四 级标签。 

WPF真入门教程03--XAML介绍_第1张图片

 默认情况下,MainWindow.xaml文件代码如下:

WPF真入门教程03--XAML介绍_第2张图片

在许多 XAML ⽂件的根标记中的命名空间声明内,通常可看到两个 XML 命名 空间声明。

第⼀个声明默认映射整个 WPF 客户端/框架 XAML 命名空间: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

第⼆个声明映射单独的 XAML 命名空间,通常将其映射到 x: 前缀。 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 这些声明之间的关系是 x: 前缀映射⽀持作为 xaml 语⾔定义⼀部分的内部函数, ⽽ WPF 是⼀种将 xaml ⽤作语⾔的实现,并为 xaml 定义了其对象的词汇。

这个xaml文件中的grid就是一个布局控件,一个window下只能有一个grid控件,而我们要设计的布局就必须包含在grid控件中。Grid顾名思义就是“网格”,以表格形式布局元素,对于整个面板上的元素进行布局,它的子控件被放在一个一个事先定义好的小格子里面,整齐配列,后面会开始讲各种UI控件。

三、XAML的语法

属性元素语法

语言难以表达,用一个实例表达此含义。

集合语法

可以理解为设置了集合属性的数值

是集合属性,其内部可以添加多个GradientStop来实现元素渐变效果。语言难以表达,用一个实例表达此含义,实例如下:


   
    
    
  

XAML内容属性

仅对内容属性而言,可以在 XAML 标记中设置该属性时省略属性元 素,并在标记中生成更直观的父级/子级形式。



 

 
   
  

上例中第一个元素使用内容属性省略Border.Child属性元素,第二个元素显式显示Border.Child

文本内容

XAML 元素可直接将文本作为其内容来处理。 若要实现此功能,必须满足以下条件之一:

  • 类必须声明一个内容属性,并且该内容属性必须是可赋值给字符串的类型(该类型可以是 Object)。
  • 类型必须声明一个类型转换器,该类型转换器将文本内容用作初始化文本。 例如, 将 Blue 的内容值转换为画笔。 这种情况实际上并不常见。
  • 类型必须为已知的 XAML 语言基元。

 
 

上例中Button是StackPanel的子元素

特性语法(事件)

特性语法还可用于事件成员,而非属性成员。 在这种情况下,特性的名称为事件的名称。 在 XAML 事件的 WPF 实现中,特性的值是实现该事件的委托的处理程序的名称。

 
  

上例中将Click事件赋予给在标记中创建的Button。

看到这里,你是不是觉得XAML语法复杂?绝对不会的,不要怕,有我在,暂时放一边,后面跟着撸,从简单的开始积累,千里之行,始于足下。

你可能感兴趣的:(WPF真入门教程,wpf,ui)