繁体   English   中英

在Vista / 7中绘制TextBox边框

[英]Draw TextBox border as in Vista / 7

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

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

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

似乎没有针对此问题的明显解决方案。 有谁知道如何绘制与Aero完全相同的边界?

对于您来说,这可能不会发生。

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

甚至Control.DrawToBitmap(...)函数也可以神奇地绘制与屏幕上不同的版本。

我没有规范的答案,但这很可能是Microsoft继续使用WPF并将WinForm控件与那些视觉主题混为一谈的结果。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM