创建显示所选颜色的按钮的最佳方法

时间:2009-11-22 18:30:17

标签: c# .net button background-color color-picker

你知道那些带有一个小矩形的颜色选择器按钮,显示当前选择的颜色吗?与MS Office产品一样。

我想用C#/ .NET实现一个。所以我有一个漂亮的小图标,带有洋红色矩形(用于显示颜色)和透明背景。

我可以想到两种方法可以做到这一点,但它们都不是很优雅:

  • 使用图形软件编辑图标,使其具有纯色背景而不是透明度,并将其调整为与包含它的按钮完全一样大。这将允许将TransparentColor = Manenta与按钮Background结合使用,但只要按钮大小,工具栏BackColor或其他内容发生变化,就必须编辑图标。
  • 每当选择新颜色时,以编程方式编辑图标。可行,但似乎有点复杂(关于开发和性能)给我。

因此。也许我错过了实现这样一个按钮的明显,简单的方法? 提前感谢任何提示/建议/灵感:)

3 个答案:

答案 0 :(得分:0)

您可以轻松覆盖OnPaint方法并使用您想要的任何颜色绘制矩形。

答案 1 :(得分:0)

显然,没有优雅的解决方案。我选择了第一个,使用PNG透明度和BackColor,缺点是必须为png背景着色,如包含面板的背景。这种方式似乎是最不痛苦的。

答案 2 :(得分:0)

我认为没有理由使用图标,PNG或任何其他图像资源。这似乎完全浪费了资源。

只需从代码中绘制框,绘制当前属于控件颜色列表的颜色。理想情况下,您的控件将允许调用者添加自己的颜色。并且它不需要任何摆弄图像。

我刚刚使用了owner-draw combo box when I did this,但我画了一个颜色框,正如我所描述的那样。很容易。