如Vista/7中那样绘制文本框边框

本文关键字:绘制 文本 边框 Vista | 更新日期: 2023-09-27 18:22:51

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

  • VisualStyleRenderer类
  • TextBoxRenderer类
  • Control.DrawToBitmap()
  • P/与UxTheme和好友一起调用
  • 绘制RichTextBox元素而不是TextBox元素

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

这个问题似乎没有明显的解决办法。有人知道如何画出与Aero完全相同的边界吗?

如Vista/7中那样绘制文本框边框

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

我认为包括TextBoxRenderer在内的VisualStyleRenderer更适合XP主题。

即使是Control.DrawToBitmap(...)函数也神奇地绘制了与屏幕上不同的版本。

我对此没有一个规范的答案,但这很可能是微软继续使用WPF并留下那些视觉主题半生不熟的WinForm控件的结果。

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