我遇到的情况是我将图像应用于按钮,但由于图像的颜色,按钮的文本并不总是可见。由于不知道按钮图像的颜色(这取决于客户),我不能只更改按钮文本颜色,而且我已经用完了想法!我最好的想法是应用一个中风'到文本(颜色与文本颜色本身相反)因此,即使文本颜色本身不可见,但是笔划将无法找到如何执行此操作的任何相关示例。这是问题的最佳解决方案吗?如果是这样,任何人都可以举例说明如何做到这一点?或者为我的问题推荐更好的解决方案?
提前致谢。
答案 0 :(得分:0)
我相信你的问题中有两个很好的解决方案之一。
要创建“笔触”或“阴影”,您必须自己绘制按钮。
通常不容易,因为用户可能在他的机器上有活动的视觉风格..
如果您的图片无论如何填满了按钮,您可能会使用相当少的代码行,但是......
这是一个让你入门的小例子:
private void button1_Paint(object sender, PaintEventArgs e)
{
// the background image
e.Graphics.DrawImage(button1.BackgroundImage, Point.Empty);
// maybe a few borderlines ?
using (Pen penbright = new Pen(Color.FromArgb(155,255,255,255)))
e.Graphics.DrawRectangle(penbright, button1.ClientRectangle);
using (Pen pendark = new Pen(Color.FromArgb(155, 0, 0, 0)))
e.Graphics.DrawRectangle(pendark,
new Rectangle(new Point(-1,-1), button1.ClientSize));
// Now the Text: Stroke: white over black
e.Graphics.DrawString(button1.Text, button1.Font, Brushes.Black, new Point(10,10));
e.Graphics.DrawString(button1.Text, button1.Font, Brushes.White, new Point(11,11));
}
待改进:
应调整DrawStrings的位置
如果图片没有覆盖整个按钮文字,我们将不得不稍微改进一下代码..
请注意,按下按钮时没有视觉反馈..
另一种解决方案可能是更改图像。
您可以发布一个或两个示例图片吗?