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
九、超级总结(必背)
- 界面上色必须用 SolidColorBrush
- 颜色写法:
- 英文:
Red - 十六进制:
#FF0077D4 - 透明:
#80FF0000
- 英文:
- 资源里存 SolidColorBrush 最方便
- 系统颜色:
SystemColors - Style / Trigger 里直接写颜色值
浙公网安备 33010602011771号