如何在c#中为ColorDialog添加透明

本文关键字:ColorDialog 添加 透明 中为 | 更新日期: 2023-09-27 18:17:29

我想为我的ColorDialog添加透明颜色。

我试过这个代码:

MyDialog.CustomColors = new int[] { Color.Transparent.ToArgb() };    
MyDialog.ShowDialog();    
string hex = ColorTranslator.ToHtml(MyDialog.Color);    
MessageBox.Show(hex);

但是,当我选择自定义颜色(我的意思是透明),消息框显示我"白色"而不是"透明"。变成白色本身。但我想选Transparent。我该怎么做呢?

如何在c#中为ColorDialog添加透明

我猜它是在显示后面的颜色。请发布您的控件XAML以确保。

一个常见的解决方法是在你的色板控件后面放一个棋盘图案,这样当alpha值降低时,棋盘图案就会显示出来。否则,你还能如何展示没有可见性的东西呢?

CustomColors属性接受由BGR(蓝色,绿色,红色)组成的Int32中的颜色,并且您正在向它传递透明颜色的ARGB表示。ARGB中的A控制alpha通道和透明度。我会在表单上添加一个复选框,供用户指定颜色透明度。否则,您可以将颜色对话框中的白色映射为透明选择。

If (dlgCol.Color.ToArgb() == Color.White.ToArgb() )
 {
        btnColor.BackColor = Color.Transparent;
 }
http://en.wikipedia.org/wiki/RGBA_color_space