像在Vista / 7中一样绘制TextBox边框

时间:2012-02-07 19:25:50

标签: c# textbox styles aero

在Windows.Forms中,我无法重现与在Vista / 7 Aero中看到的完全相同的TextBox边框。我得到的只是一个灰色矩形,而是略微凹陷的灰色/蓝色3D边框。我尝试了以下方法但没有成功:

  • VisualStyleRenderer类
  • TextBoxRenderer类
  • Control.DrawToBitmap()
  • P / Invoke with UxTheme和朋友
  • 绘制RichTextBox元素而不是TextBox元素

此问题已在此处讨论,但没有解决方案:http://social.msdn.microsoft.com/Forums/hu-HU/winforms/thread/46e66852-b52e-420d-8fe0-b717f86ecb18

看起来这个问题没有明显的解决方案。 有谁知道如何绘制与Aero完全相同的边框?

1 个答案:

答案 0 :(得分:1)

这可能不会发生在你身上。

认为 VisualStyleRenderer,包括TextBoxRenderer,更适合XP主题。

即使Control.DrawToBitmap(...)函数神奇也会与屏幕上显示的版本不同。

我没有这方面的规范答案,但这很可能是微软继续使用WPF并将这些视觉主题遗留下来的WinForm控件的结果。

这个问题的唯一答案是使用WPF或使用像DevExpress这样的第三方系统(支持自定义主题),如果你需要“主题化”所有控件。