WPF中的颜色

一、先搞懂 2 个核心类(90% 的人混淆)

1. Color(颜色结构)

  • 只是纯颜色值:红、绿、蓝、透明度
  • 不能直接用在 Background、Foreground
1 Colors.Red
2 Color.FromRgb(255,0,0)
3 Color.FromArgb(255,255,0,0)

2. SolidColorBrush(纯色画刷)

  • 用来给控件上色的工具
  • WPF 界面属性 Background、Foreground、BorderBrush 都必须用 Brush

结论:

界面 → 用 SolidColorBrush
 
资源 / 代码 → 可以存 Color,也可以存 SolidColorBrush

二、颜色的 3 种表示方式

1. 英文名称(最方便)

1 Red、Green、Blue、White、Black、Gray、LightBlue、DarkGray

2. RGB 十进制(0~255)

1 Color="255,0,0"

3. 十六进制(最常用,前端标准)

1 #FF0000
2 #FFFF0000 (带透明度)

十六进制格式

#AARRGGBB
  • AA:透明度(00~FF)
  • RR:红
  • GG:绿
  • BB:蓝

三、在 XAML 中直接使用颜色

1. 直接赋值(最简单)

1 <Button Background="Red" Content="红色按钮"/>
2 <TextBlock Foreground="Blue" Text="蓝色文字"/>

2. 十六进制(最常用)

1 <Button Background="#FF0077D4" Content="主题色"/>

3. 带透明度(半透明)

1 <Button Background="#80FF0000" Content="半透明红"/>

四、在资源字典 / 窗口资源中定义颜色

1. 定义 SolidColorBrush(推荐,直接能用)

1 <Window.Resources>
2     <SolidColorBrush x:Key="ThemeColor" Color="#0077D4"/>
3     <SolidColorBrush x:Key="WarningColor" Color="Orange"/>
4     <SolidColorBrush x:Key="ErrorColor" Color="Red"/>
5 </Window.Resources>

使用:

1 <Button Background="{StaticResource ThemeColor}" />

2. 定义 Color(存颜色值,不常用)

1 <Color x:Key="MyColor">#0077D4</Color>

五、系统颜色(SystemColors)

WPF 自带系统主题颜色,自动跟随系统设置。
 1 <!-- 窗口背景色 -->
 2 <TextBlock Background="{x:Static SystemColors.WindowColor}"/>
 3 
 4 <!-- 控件背景色 -->
 5 <Button Background="{x:Static SystemColors.ControlColor}"/>
 6 
 7 <!-- 高亮色(选中) -->
 8 <Border Background="{x:Static SystemColors.HighlightColor}"/>
 9 
10 <!-- 文字颜色 -->
11 <TextBlock Foreground="{x:Static SystemColors.ControlTextColor}"/>

六、在 Style / Trigger 中使用颜色

示例:鼠标悬浮变色按钮

1 <Style TargetType="Button">
2     <Setter Property="Background" Value="#0077D4"/>
3     <Style.Triggers>
4         <Trigger Property="IsMouseOver" Value="True">
5             <Setter Property="Background" Value="#005AA1"/>
6         </Trigger>
7     </Style.Triggers>
8 </Style>

七、后台 C# 代码创建颜色

 1 // 1. 命名颜色
 2 Color c1 = Colors.Red;
 3 
 4 // 2. RGB
 5 Color c2 = Color.FromRgb(255, 0, 0);
 6 
 7 // 3. ARGB (带透明度)
 8 Color c3 = Color.FromArgb(128, 255, 0, 0);
 9 
10 // 4. 十六进制
11 Color c4 = (Color)ColorConverter.ConvertFromString("#FF0077D4");
12 
13 // 转成画刷
14 SolidColorBrush brush = new SolidColorBrush(c4);
15 button.Background = brush;

八、最常用颜色速查表(开发必备)

 1 白色:White
 2 黑色:Black
 3 红色:Red
 4 绿色:Green
 5 蓝色:Blue
 6 橙色:Orange
 7 紫色:Purple
 8 灰色:Gray
 9 浅灰:LightGray
10 深灰:DarkGray
11 主题蓝:#0077D4
12 成功绿:#00B42A
13 警告橙:#FF7D00
14 错误红:#F53F3F

九、超级总结(必背)

  1. 界面上色必须用 SolidColorBrush
  2. 颜色写法:
    • 英文:Red
    • 十六进制:#FF0077D4
    • 透明:#80FF0000
  3. 资源里存 SolidColorBrush 最方便
  4. 系统颜色:SystemColors
  5. Style / Trigger 里直接写颜色值
posted on 2026-03-25 18:08  工业搬砖猿Lee  阅读(218)  评论(0)    收藏  举报