【愚公系列】2022年10月 WPF控件专题XAML介绍

2022-12-01 10:23:31 浏览数 (1)

文章目录

  • 前言
  • 一、XAML定义
  • 二、特点
  • 三、命名空间
  • 四、XAML样例
    • 1.代码

前言

XAML是eXtensible Application Markup Language的英文缩写,相应的中文名称为可扩展应用程序标记语言,它是微软公司为构建应用程序用户界面而创建的一种新的描述性语言。XAML提供了一种便于扩展和定位的语法来定义和程序逻辑分离的用户界面,而这种实现方式和ASP.NET中的"代码后置"模型非常类似。XAML是一种解析性的语言,尽管它也可以被编译。它的优点是简化编程式上的用户创建过程,应用时要添加代码和配置等。

WPF程序可能同时包含程序代码和 XAML。我们可以使用XAML定义应用程序的初始界面,而后才编写相应的功能实现代码。我们可以将逻辑代码直接嵌入到一个XAML文件中,也可以将它保留在一个单独的文件中。XAML可以理解为前端。

一、XAML定义

为构建应用程序用户界面而创建的一种新的“可扩展应用程序标记语言”,提供一种便于扩展和定位的语法来定义和程序业务逻辑分离的用户界面。

二、特点

  1. 定义应用程序的界面元素
  2. 显式声明WPF资源(样式、模板、动画 等)
  3. 可扩展性(UI控件)
  4. 集中关注界面设计

三、命名空间

xaml与.net程序语言一样,也是通过命名空间有效组织xaml内部的相关元素类,不一样,

命名空间,像网址,(打不开) ,规则(xaml解析器标准)

代码语言:javascript复制
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 

默认的命名空间

代码语言:javascript复制
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  

xaml语法和编译相关的clr命名空间 区分:如果应用时,不带前缀,就来自于默认的命名空间,否则,就来自于带前缀的命名空间。

xaml命名空间

代码语言:javascript复制
xmlns[:前缀名]=“命名空间描述”;

自定义类或程序集映射语法

代码语言:javascript复制
xmlns[:必选前缀]="clr-namespace:[命名空间];assembly=[程序集名称]"

四、XAML样例

1.代码

代码语言:javascript复制
<Window x:Class="MyXaml.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MyXaml" Height="150" Width="300"  >
    <Grid>
        <Grid.RowDefinitions>
        <RowDefinition Height="30"/>
        <RowDefinition Height="30"/>
        <RowDefinition Height="30"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <TextBlock Grid.Column="0" Grid.Row="0" FontWeight="Bold" Text="姓名:" Width="30"/>
        <TextBlock Grid.Column="0" Grid.Row="1" FontWeight="Bold" Width="30">性别:</TextBlock>
        <TextBlock Grid.Column="0" Grid.Row="2" FontWeight="Bold" Width="30" Text="年龄"></TextBlock>
        <TextBox Grid.Column="1" Grid.Row="0" FontWeight="Bold" Width="100" />
        <TextBox Grid.Column="1" Grid.Row="1" FontWeight="Bold" Width="100"/>
        <TextBox Grid.Column="1" Grid.Row="2" FontWeight="Bold" Width="100"/>
    </Grid>
</Window>```

## 2.运行结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/010bec345d4746e8acb62adf7b4d38f1.png)

0 人点赞