首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用视觉样式绘制3D边框?

如何使用视觉样式绘制3D边框?
EN

Stack Overflow用户
提问于 2009-02-20 11:47:44
回答 2查看 3.5K关注 0票数 4

我可以使用ControlPaint.DrawBorder3D绘制3D边框,但我得到的是'Windows‘3D边框。我想要绘制当前主题的3D边框-在默认XP主题中,这是1 1px蓝色或灰色边框。我如何绘制它,以及如何得到它的宽度?

EN

回答 2

Stack Overflow用户

发布于 2009-02-23 21:47:13

听起来您可能需要看看System.Windows.Forms.VisualStyles.VisualStyleRenderer

System.Windows.Forms.VisualStyles命名空间公开表示视觉样式支持的所有控件和用户界面(UI)元素的VisualStyleElement对象。要绘制或获取有关特定元素的信息,必须将VisualStyleRenderer设置为您感兴趣的元素。 若要绘制元素,请使用DrawBackground方法。VisualStyleRenderer类还包括方法(如GetColorGetEnumValue ),这些方法提供有关元素如何由当前视觉样式定义的信息。

该页面上也有一个代码示例。

您必须自己绘制边框,但是您可以从VisualStyleElement.Window.Caption.Active获得颜色,并且大小应该是窗口框的大小(我相信),即VisualStyleElement.Window.FrameBottom.Active。如果您探索VisualStyleElement.Window,您应该能够确定哪个窗口元素具有绘制边框所需的信息。

票数 4
EN

Stack Overflow用户

发布于 2009-02-23 21:39:57

Pre .NET Framework2.0回答

我假设您正在绘制自己的特殊控件,并且希望使用当前活动主题的元素来绘制它,以便它更适合标准XP控件。例如,您不是试图在标准按钮控件上启用主题化。对,是这样?

其实有点复杂。您的主要关注点应该是UxTheme.dll。这里包含绘制主题控件所需的一切。这里是一个很好的C#包装围绕这个dll,以使您的生活更容易。还有其他人,所以如果这不是你想要的,我希望我已经为你指明了正确的方向。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/569289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档