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


目录
相关文章
|
8月前
|
XML 开发框架 .NET
|
C# 前端开发
WPF中Style文件的引用——使用xaml代码或者C#代码动态加载
原文:WPF中Style文件的引用——使用xaml代码或者C#代码动态加载   WPF中控件拥有很多依赖属性(Dependency Property),我们可以通过编写自定义Style文件来控制控件的外观和行为,如同CSS代码一般。
4798 0
|
5月前
|
开发框架 前端开发 JavaScript
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(3)--自定义用户控件
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(3)--自定义用户控件
|
C#
艾伟_转载:WPF/Silverlight陷阱:XAML自定义控件的嵌套内容无法通过名称访问
为了说明这个问题,假定我们需要实现一个具有特殊功能的按钮控件。编写Xaml文件如下: Button> 对 Code Behind类,唯一的改动是把向导生成的基类从UserControl改成Button: public partial class XamlButton : Button{    ...
1089 0
|
C# 数据安全/隐私保护
WPF自定义控件(三)の扩展控件
原文:WPF自定义控件(三)の扩展控件         扩展控件,顾名思义就是对已有的控件进行扩展,一般继承于已有的原生控件,不排除继承于自定义的控件,不过这样做意义不大,因为既然都自定义了,为什么不一步到位呢,有些不同的需求也可以通过此来完成,不过类似于类继承了。
1272 0
|
C# 测试技术
WPF中动态加载XAML中的控件
原文:WPF中动态加载XAML中的控件 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.
1181 0
|
C#
XamlReader 动态加载XAML
原文:XamlReader 动态加载XAML XAML: CS: using (FileStream s = new FileStream(@"C:\Users\Lin.
1149 0
|
前端开发 C#
使用MVVM DataTemplate在WPF XAML视图之间切换
原文 使用MVVM DataTemplate在WPF XAML视图之间切换 更新:这个技术的改进版本,一个不创建视图,可以在以下链接找到: http://www.technical-recipes.
1307 0
|
C#
WPF中,怎样将XAML代码加载为相应的对象?
原文:WPF中,怎样将XAML代码加载为相应的对象? 在前面“在WPF中,如何得到任何Object对象的XAML代码?”一文中,我介绍了使用System.Windows.Markup.XamlWriter.Save(objName)得到任何Object对象的XAML代码。
946 0
|
C#
WPF xaml中列表依赖属性的定义
原文:WPF xaml中列表依赖属性的定义 列表内容属性 如上图,是一个列表标题排序控件,我们需要定义一个标题列表,从而让调用方可以自由的设置标题信息。 在自定义控件时,会遇到列表依赖属性,那么该如何定义呢? 下面是错误的定义方式: 1 /// 2 /// 标识 的依赖项属性。
1114 0