zoukankan      html  css  js  c++  java
  • WPF 10天修炼 第二天- XAML语言

    XAML是什么

      XAML是一种与.NET CLR紧密集成的声明性UI标记语言。XAML中的对象元素对应到CLR中的类型或结构。XAML命名空间对应到CLR中类的命名空间,元素类型则对应到CLR中的类型。XAML是xml的子集,因此严格遵循XML的语法规范。

    新建一个WPF空项目,下面是默认生成的XAML结构

    <Window x:Class="WpfApplication1.MainWindow"
    
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    
            Title="MainWindow">
    
        <Grid>
           
    
        </Grid>
    
    </Window>
    

    XAML代码组成:

    1、  一个根元素<Window>和</window>标记。在XAML中,必须有且只能有一个根元素

    2、  紧接着根元素的XML命名空间的声明。在每个XAML文件中必须要具有两个命名空间

      xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation 表示WPF命名空间,也就是XAML元素对应到CLR类的命名空间。

      xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml 表示XAML文件本身的命名空间,语法是xmlns:x,这个是x是命名的前缀可以是任意的字符。如果我们需要导入一些自定义的命名空间,那么我们就需要加上“:+自定义的形式”,这里微软导入了一个自定义的命名空间。

      使用其它命名空间的类型语法:

      xmlns:Prefix="clr-namespace:Namespace;assembly=AssemblyName"

      Prefix:用户指定希望在XAML文档中使用的命名空间的前缀,类似于XAML命名空间使用的x:前缀,可以指定任意的字符串。

      Namespace:是完整的.net命名空间名

      AssemblyName:程序集名称,不用指定.DLL扩展名。这个程序集必须被当前的WPF项目所引用。

    3、下面是<Grid>标记,代表XAML文件的UI内容。

      

    代码后置文件

             使用项目模板创建一个窗体或页面时,VS会自动生成一个相应XAML文件扩展名在再加上.cs的代码后置文件。XMLA中通过使用x:class 语法关联到一个特定的后置类。

    X:Class后置类指定为WpfApplication1.MainWindow,可以打开后置代码文件,看到一个名为WpfApplication1的命名空间,有一个MainWindow的类。X:class告诉XAML解析器,使用指定的名称来产生一个新的类,这个类派生自XAML跟元素类。因此在代码后置文件中可以看到MainWindow类继承自Window类。代码如下:

     namespace WpfApplication1

    {

        public partial class MainWindow : Window

        {

            public MainWindow()

            {

                InitializeComponent();

            }

        }

    }

    特定的字符和空白

    XAML严格遵循XML语法规范,在XML中,对特定的字符,比如& < > 等需要进行特殊处理,所以在XAML中也需要使用特定的代码来替换这些字符。

    小于符号<:&lt;    <Button Content="小于号:&lt;"></Button>

    大于符号>:&gl    <Button Content="大于号:&gt;"></Button>

    And符合&:&amp;  <Button Content="And符号:&amp;"></Button>

    引号””:&quot;     <Button Content="引号:&quot;"></Button>

    在XAML中使用事件 

    XAML代码中事件的声明通常使用事件名=”事件处理方法名”,并且在后置代码中对指定的方法提供声明和实现。

    XAML代码

    <Window x:Class="WPFDemo.MainWindow"

            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

            xmlns:local="clr-namespace:WPFDemo"

            mc:Ignorable="d"

            Title="MainWindow" Height="350" Width="525">

        <StackPanel >

            <!---定义按钮样式-->

            <StackPanel.Resources>

                <Style TargetType="{x:Type Button}">

                    <Setter Property="Height" Value="50"></Setter>

                    <Setter Property="Width" Value="200"></Setter>

                    <Setter Property="HorizontalAlignment" Value="Left"></Setter>

                </Style>

            </StackPanel.Resources>

            <Button Content="点击我试试" Name="button1" Click="button1_Click"></Button>

    </StackPanel>

    </Window>

     

    后置代码:

    private void button1_Click(object sender, RoutedEventArgs e)

     {

      MessageBox.Show("我是单击事件");

    }

  • 相关阅读:
    迭代器,生成器的理解
    需求
    关于dom 0级 2级 3级事件的理解
    夯实前端基础
    前端面试题 收集
    前端易忘点,持续更新
    form target 文件上传
    ES6 symbol
    bzoj1260 [CQOI2007]涂色paint
    bzoj1083 [SCOI2005]繁忙的都市
  • 原文地址:https://www.cnblogs.com/zhaochengshen/p/7457152.html
Copyright © 2011-2022 走看看