【问题标题】:Trackback controls Alpha value for colorTrackback 控制颜色的 Alpha 值
【发布时间】:2013-04-16 20:34:07
【问题描述】:

我有一个文本框,我使用它的背景颜色作为颜色预览,以及一个控制该颜色 alpha 的轨迹栏。我正在使用以下代码:

private void trackAlpha_ValueChanged(object sender, EventArgs e) {
    colorPreview.BackColor = Color.FromArgb(trackAlpha.Value, colorDialog.Color.R, colorDialog.Color.G, colorDialog.Color.B);
}

事实证明,滚动 alpha 对预览没有任何影响。

关于为什么会发生这种情况的任何想法?

【问题讨论】:

  • 这是 WinForms,还是 WPF,还是别的什么?
  • 这是一个表格。对不起,应该包括那个。
  • 我为你添加了标签。
  • winforms支持透明吗?
  • 确实如此,我在我的另一个具有相同功能的应用程序中使用了它 - 更改文本框背景颜色的透明度。我在这个新项目中复制并粘贴了这个确切的代码并更改了所需的内容,但仍然没有成功。

标签: c# winforms colors alpha trackbar


【解决方案1】:

WinForms Controls 确实支持 Alpha 通道,但默认情况下不支持。对于想要具有半透明背景颜色的控件,必须调用SetStyle 方法:

this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);

该方法受到保护,因此您必须从所需的控件继承并在构造函数或其他东西中调用它。此控件将是 colorPreview 所指的任何内容。

【讨论】:

  • 请原谅我的无知,但我应该在public Form1() 部分使用它并在轨迹栏幻灯片部分正常使用 ColorFromArgb 方法吗?
  • @P1CUnrelated 查看我的编辑:此控件将是 colorPreview 所指的任何内容。
  • 好吧,再次原谅我的无知。我只将您显示的代码放在代码的public Form1() 部分中,因为我看不出它与colorPreview 之间没有任何联系。再一次,对不起,我真的很感激第二个解释。
  • 我假设colorPreview 指的是一个控件。无论该控件的类型如何,您都需要创建自己的继承自它的类型,并在该控件的构造函数中调用 SetStyle
  • 是的,确实如此。这是一个名为colorPreview 的文本框,我正在尝试更改其背景色。我把你给我看的sn-p放在应该改变文本框透明度的轨迹栏中,仍然没有成功。很抱歉让你向我解释这一切,我真的不知道发生了什么事。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多