0

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

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

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

  • 使用图形软件编辑图标,使其具有纯色背景色而不是透明度,并将其大小调整为与包含它的按钮一样大。这将允许将 TransparentColor=Manenta 与按钮背景结合使用,但是每当按钮大小、工具栏背景颜色或其他内容发生变化时,都必须编辑图标。
  • Edit the icon programmatically whenever a new color is selected. 可以,但对我来说似乎有点复杂(关于开发和性能)。

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

4

3 回答 3

0

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

于 2009-11-22T18:33:18.517 回答
0

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

于 2009-11-22T20:51:02.170 回答
0

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

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

当我这样做时,我只是使用了一个所有者绘制的组合框,但是我画了一个颜色框,正如我所描述的那样。好简单。

于 2011-02-11T04:55:51.217 回答