如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完全相同的边界吗?
这可能不会发生在你身上。
我认为包括TextBoxRenderer
在内的VisualStyleRenderer
更适合XP主题。
即使是Control.DrawToBitmap(...)
函数也神奇地绘制了与屏幕上不同的版本。
我对此没有一个规范的答案,但这很可能是微软继续使用WPF并留下那些视觉主题半生不熟的WinForm控件的结果。
这个问题的唯一答案是使用WPF或使用第三方系统,如DevExpress(支持自定义主题),如果你需要"主题化"所有控件。