我想为ColorDialog添加透明色。
我试过这段代码:
MyDialog.CustomColors = new int[] { Color.Transparent.ToArgb() };
MyDialog.ShowDialog();
string hex = ColorTranslator.ToHtml(MyDialog.Color);
MessageBox.Show(hex);
但是,当我选择自定义颜色(我的意思是透明)时,messageBox会显示“白色”而不是“透明”。转换为白色本身。但我想选择透明。我怎样才能做到这一点?
答案 0 :(得分:0)
我的猜测是它显示了背后的颜色。请发布您的控件XAML以确定。
一个常见的解决方法是在你的样本控件后面放置一个棋盘图案,这样当alpha减少时,检查器会显示出来。否则,你怎么表现出一些没有可见性的东西?
答案 1 :(得分:0)
CustomColors属性接受由BGR(蓝色,绿色,红色)组成的Int32中的颜色,并且您传递的是透明颜色的ARGB表示。 ARGB中的A控制alpha通道和透明度。我会在表单上放置一个复选框,供用户指定颜色透明度。否则,您可以将颜色对话框中的白色映射到透明选择。
If (dlgCol.Color.ToArgb() == Color.White.ToArgb() )
{
btnColor.BackColor = Color.Transparent;
}