2.XAML基础

简介: 2.XAML基础

一、创建项目

打开Visual Studio2022,首页点开“创建新项目(N)”,找到WPF应用程序,选择下一步。


28b57481d39d4926ad14c4be3118846c.png


依次输入“项目名称”,选择“位置”,输入“解决方案名称”和选择“框架”,点击“创建”,即可创建新项目。


二、XAML基础

进入项目中,点开MainWindow.xaml文件,基础规则如下:


3ab1180b7d69433c8702e8a69c5c0484.png


1.Loaded事件:

<Window x:Class="WpfApp.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:WpfApp"
            mc:Ignorable="d"
            Title="MainWindow" Height="450" Width="800" Loaded="Window_Loaded">
        <Grid Name="grid1">
        </Grid>
    </Window>
    private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                this.Title = this.grid1.Name;
            }

运行效果图,名称由MainWindow变成grid1。

229436e652bc4af6a88f591dd69db781.png



2.复杂属性:

例如:Grid控件有一个Background属性,该属性允许提供用于绘制控件背景区域的画刷。代码如下:

    <Grid Name="grid1">
            <Grid.Background>
                <LinearGradientBrush>
                    <LinearGradientBrush.GradientStops>
                        <GradientStop Offset="0.00" Color="red"/>
                        <GradientStop Offset="0.50" Color="Yellow"/>
                        <GradientStop Offset="1.00" Color="BlueViolet"/>
                    </LinearGradientBrush.GradientStops>
                </LinearGradientBrush>
            </Grid.Background>
        </Grid>

运行效果图:

3c74b93d30134a56aa6bd2e2b0e70de0.png


以上内容也可以通过“属性”面板实现:

c350b216dde240ddabf66e02e5e43f7f.png


3.附加属性

按照下图设置:

ad807c6605844eb590e3598827b2fdec.png

06b02bfc62774931944f9b87b50d9189.png



然后依次在三个区域添加三个按钮,代码变成:

  <Grid Name="grid1">
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <Grid.Background>
                <LinearGradientBrush>
                    <LinearGradientBrush.GradientStops>
                        <GradientStop Offset="0.00" Color="red"/>
                        <GradientStop Offset="0.50" Color="Yellow"/>
                        <GradientStop Offset="1.00" Color="BlueViolet"/>
                    </LinearGradientBrush.GradientStops>
                </LinearGradientBrush>
            </Grid.Background>
         <!--三个按钮-->
            <Button Content="Button1" HorizontalAlignment="Left" Margin="332,72,0,0" VerticalAlignment="Top"/>
            <Button Content="Button2" HorizontalAlignment="Left" Margin="332,72,0,0" VerticalAlignment="Top" Grid.Row="1" />
            <Button Content="Button3" HorizontalAlignment="Left" Margin="332,72,0,0" VerticalAlignment="Top" Grid.Row="2" />
        </Grid>

4.特殊字符或空白

特殊字符 字符实体
小于号(<) & lt;
大于号(>) & gt;
&符号(&) & amp;
引号(“) & quot;


三、事件


例如:Button控件提供了Click事件。代码如下:

    <Grid>
            <Button Width="200" Height="40" Click="Button_Click">按钮</Button>
        </Grid>
 private void Button_Click(object sender, RoutedEventArgs e)
            {
                MessageBox.Show("您刚刚点击了按钮");
            }

097ad9820b8f43d5aa3be343a527f8b8.png


目录
相关文章
|
6月前
|
XML 开发框架 .NET
|
C#
WPF技术之Xaml Window
WPF Window 是一个 WPF 窗口类,它具有许多属性枚举可以控制窗口的外观和行为。
126 0
WPF技术之Xaml Window
|
C#
WPF技术之App.xaml
App.xaml是WPF应用程序的全局资源定义文件。它包含了在整个应用程序范围内可供访问的资源、样式和设置。
542 1
|
C# 测试技术
WPF中动态加载XAML中的控件
原文:WPF中动态加载XAML中的控件 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.
1163 0
|
前端开发 C#
使用MVVM DataTemplate在WPF XAML视图之间切换
原文 使用MVVM DataTemplate在WPF XAML视图之间切换 更新:这个技术的改进版本,一个不创建视图,可以在以下链接找到: http://www.technical-recipes.
1291 0
|
C#
WPF中,怎样将XAML代码加载为相应的对象?
原文:WPF中,怎样将XAML代码加载为相应的对象? 在前面“在WPF中,如何得到任何Object对象的XAML代码?”一文中,我介绍了使用System.Windows.Markup.XamlWriter.Save(objName)得到任何Object对象的XAML代码。
922 0
|
JavaScript 前端开发
XamlReader动态使用xaml
原文:XamlReader动态使用xaml xamlload先在xaml做出一个grid,命名xgrid 用和前面写 但是位置不一样的按钮 private void button_Click(obje...
888 0
|
XML 开发框架 .NET