WINUI——Background颜色使用小结
在 WinUI/UWP XAML 中,Background
(或其他颜色属性)支持 多种颜色表示方式,包括以下三种主流格式:
1. RGB 十六进制(不透明)
- 格式:
#RRGGBB
- 特点:无透明度(默认完全不透明,Alpha =
FF
)。 - 示例:
<Button Background="#FF0000"/> <!-- 纯红色 -->
2. ARGB 十六进制(带透明度)
- 格式:
#AARRGGBB
AA
= 透明度(Alpha,00
=全透明,FF
=不透明)。RRGGBB
= 红绿蓝分量。
- 示例:
<StackPanel Background="#4DFFFFFF"/> <!-- 30%透明的白色 -->
3. 颜色枚举(预定义颜色名)
- 格式:直接使用
Colors
类中的英文名称(如Red
、Blue
)。 - 特点:代码简洁,但不支持透明度调整(始终不透明)。
- 示例:
<TextBlock Foreground="DarkBlue"/> <!-- 深蓝色文字 -->
4. 扩展用法:SolidColorBrush 或资源引用
(1) 通过 SolidColorBrush
动态设置颜色
<Button><Button.Background><SolidColorBrush Color="#80FF0000"/> <!-- 50%透明的红色 --></Button.Background>
</Button>
(2) 引用静态资源或主题资源
<Page.Resources><SolidColorBrush x:Key="MyColor" Color="#802A8AD7"/> <!-- 50%透明的蓝色 -->
</Page.Resources><Grid Background="{StaticResource MyColor}"/>
对比总结
表示方式 | 示例 | 透明度支持 | 适用场景 |
---|---|---|---|
RGB 十六进制 | #FF0000 | ❌ 不透明 | 简单纯色 |
ARGB 十六进制 | #80FF0000 | ✅ 支持 | 需要透明度的颜色 |
颜色枚举名 | "Red" | ❌ 不透明 | 快速使用预定义颜色 |
SolidColorBrush | <SolidColorBrush> | ✅ 支持 | 动态或复杂颜色设置 |
注意事项
-
透明度行为差异:
- 直接设置
Background="#80FF0000"
和设置Opacity="0.5"
不同:ARGB
仅背景透明,子元素不受影响。Opacity
会影响整个控件(包括子元素)。
- 直接设置
-
颜色转换工具:
- 可以使用在线工具(如 Color Picker)快速获取 ARGB 值。
-
WinUI 3 兼容性:
- 以上语法在 UWP/WinUI 2.x/WinUI 3 中均适用。
完整示例
<StackPanel><!-- 方式1: RGB 十六进制 --><Rectangle Fill="#00FF00" Width="100" Height="50"/> <!-- 纯绿色 --><!-- 方式2: ARGB 十六进制 --><Rectangle Fill="#800000FF" Width="100" Height="50"/> <!-- 50%透明的蓝色 --><!-- 方式3: 颜色枚举名 --><TextBlock Text="Hello" Foreground="DarkOrange"/><!-- 方式4: SolidColorBrush --><Ellipse Width="100" Height="50"><Ellipse.Fill><SolidColorBrush Color="#4DFF69B4"/> <!-- 30%透明的热粉色 --></Ellipse.Fill></Ellipse>
</StackPanel>
根据需求选择最合适的表示方式即可!