当前位置: 首页 > news >正文

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 类中的英文名称(如 RedBlue)。
  • ​特点​​:代码简洁,但​​不支持透明度调整​​(始终不透明)。
  • ​示例​​:
    <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>✅ 支持动态或复杂颜色设置

​注意事项​

  1. ​透明度行为差异​​:

    • 直接设置 Background="#80FF0000" 和设置 Opacity="0.5" 不同:
      • ARGB 仅背景透明,子元素不受影响。
      • Opacity 会影响整个控件(包括子元素)。
  2. ​颜色转换工具​​:

    • 可以使用在线工具(如 Color Picker)快速获取 ARGB 值。
  3. ​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>

根据需求选择最合适的表示方式即可!


http://www.mrgr.cn/news/98523.html

相关文章:

  • Java EE(8)——线程安全总结(翻新版)——定时器(Timer)线程池(ThreadPoolExecutor)
  • Linux中信号的保存
  • 阿里FPGA XCKU3P开箱- 25G 光纤
  • 【CUDA 】第3章 CUDA执行模型——3.5循环展开(3)
  • 音视频小白系统入门笔记-0
  • 【强化学习漫谈】3.RLHF:从Reward Model到DPO
  • 代码随想录算法训练营Day30
  • C#中async await异步关键字用法和异步的底层原理
  • 怎么看英文论文 pdf沉浸式翻译
  • (二)Graspnet在mujoco的仿真复现(操作记录)
  • linux多线(进)程编程——(7)消息队列
  • Leetcode 2814. 避免淹死并到达目的地的最短时间【Plus题】
  • 第IV部分有效应用程序的设计模式
  • STM32F103_HAL库+寄存器学习笔记15 - 梳理CAN发送失败时,涉及哪些寄存器
  • 实战指南:封装Whisper为FastAPI接口并实现高并发处理-附整合包
  • 欧拉服务器操作系统安装MySQL
  • 单片机 + 图像处理芯片 + TFT彩屏 触摸开关控件 v1.2
  • Transformer-PyTorch实战项目——文本分类
  • (劳特巴赫调试器学习笔记)四、Practice脚本.cmm文件编写
  • C++第三方库【JSON】nlohman/json