实现效果:

整体代码展示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<Window x:Class="WpfForXaml.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:WpfForXaml"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<Rectangle Name="Rectangle" Width="300" Height="300">
<Rectangle.Fill>
<LinearGradientBrush>
<LinearGradientBrush.GradientStops>
<GradientStop Offset="0.3" Color="LightBlue"></GradientStop>
<GradientStop Offset="0.6" Color="LightGreen"></GradientStop>
<GradientStop Offset="0.9" Color="LightPink"></GradientStop>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
</Grid>
</Window>

🧱 第一步:理解整体结构 —— <Grid>​ 是“画布”

1
2
3
<Grid>
<!-- 你的内容放在这里 -->
</Grid>
  • <Grid>​ 是一个布局容器,可以理解为 画布 或者 画板
  • 你可以在这个画布上放各种图形、按钮、文本等。
  • 现在你在这个画布上放了一个图形: <Rectangle>矩形

🟦 第二步:画一个矩形 —— <Rectangle>

1
2
3
<Rectangle Name="Rectangle" Width="300" Height="300">
<!-- 里面是它的填充颜色 -->
</Rectangle>
  • <Rectangle>​ 就是画一个矩形。
  • Name="Rectangle"​:给这个矩形起个名字叫 Rectangle​(方便后面在 C# 中使用)。
  • Width="300"​ 和 Height="300"​:这个矩形的宽度和高度都是 300 像素。

🎨 第三步:给矩形上颜色 —— <Rectangle.Fill>

1
2
3
<Rectangle.Fill>
<!-- 填充的内容放在这里 -->
</Rectangle.Fill>
  • Fill​ 是“填充”的意思。
  • 你想让这个矩形是什么颜色?或者是什么图案?就在这里设置。
  • 现在你用的是一个 渐变色 来填充。

🌈 第四步:设置渐变色 —— <LinearGradientBrush>

1
2
3
<LinearGradientBrush>
<!-- 渐变点设置在这里 -->
</LinearGradientBrush>
  • LinearGradientBrush​ 是“线性渐变笔刷”的意思。
  • 它的作用是:让颜色从一个地方慢慢变成另一个颜色,就像彩虹一样。

🎨 第五步:定义渐变的颜色点 —— <GradientStop>

1
2
3
4
5
<LinearGradientBrush.GradientStops>
<GradientStop Offset="0.3" Color="LightBlue"></GradientStop>
<GradientStop Offset="0.6" Color="LightGreen"></GradientStop>
<GradientStop Offset="0.9" Color="LightPink"></GradientStop>
</LinearGradientBrush.GradientStops>
  • GradientStop​ 是“渐变停止点”。

  • 它的作用是告诉 WPF:在某个位置显示什么颜色

  • 比如:

    • Offset="0.3"​:在 30% 的位置显示 LightBlue
    • Offset="0.6"​:在 60% 的位置显示 LightGreen
    • Offset="0.9"​:在 90% 的位置显示 LightPink

🧠 理解记忆技巧(比喻 + 分层结构)

你可以把这段代码想象成:

🎨 画画的过程:

  1. 先准备一张画布<Grid>​)
  2. 在画布上画一个矩形<Rectangle>​)
  3. 准备一个“渐变刷子”<LinearGradientBrush>​)
  4. 在刷子上滴几滴不同颜色的颜料<GradientStop>​)
  5. 用这个刷子把矩形涂上颜色<Rectangle.Fill>​)

🧩 总结一下结构(从大到小)

1
2
3
4
5
6
Window(窗口)
└── Grid(画布)
└── Rectangle(矩形)
└── Fill(填充)
└── LinearGradientBrush(渐变刷子)
└── GradientStops(颜色点)

✅ 小贴士:帮助记忆的口诀

标签 作用 记忆口诀
<Grid> 画布 “画布是起点,放啥都可以”
<Rectangle> 画矩形 “矩形宽高定大小”
<Fill> 填充颜色 “填充颜色靠 Fill”
<LinearGradientBrush> 渐变刷子 “渐变刷子画彩虹”
<GradientStop> 颜色点 “颜色点定位置和颜色”

🧪 想象练习:如果我想换颜色怎么办?

比如:

  • LightBlue​ 改成 Red
  • Offset="0.6"​ 改成 0.5
  • 添加一个 <GradientStop Color="Yellow" Offset="1.0" />

你就可以看到颜色变化啦!试试看 👍


如果你是初学者,建议你:

  1. 先模仿:复制粘贴代码,看效果。
  2. 再修改:改颜色、改位置、改大小,观察变化。
  3. 再理解:知道每一层是干什么的。
  4. 再创造:自己写一个圆形、椭圆、渐变背景等。