C# 如何在关闭视觉样式的情况下绘制UI元素?
我有一个所有者绘制的控件,需要在其中绘制树视图的扩展框(“加号/减号”)。打开视觉样式后,只需为适当的VisualStyleElement创建渲染器即可:C# 如何在关闭视觉样式的情况下绘制UI元素?,c#,winforms,treeview,ownerdrawn,C#,Winforms,Treeview,Ownerdrawn,我有一个所有者绘制的控件,需要在其中绘制树视图的扩展框(“加号/减号”)。打开视觉样式后,只需为适当的VisualStyleElement创建渲染器即可: 禁用视觉样式时是否可能达到类似效果?我知道有一个ControlPaint类可以绘制整个控件,但是如何绘制(并获得大小)TreeView控件的一部分呢?如果没有VisualStyles,我认为加减控件只是DrawRectangle和DrawLine方法调用 矩形部分看起来像是使用了SystemColors.Control颜色,加号/减号部分看起
禁用视觉样式时是否可能达到类似效果?我知道有一个ControlPaint类可以绘制整个控件,但是如何绘制(并获得大小)TreeView控件的一部分呢?如果没有VisualStyles,我认为加减控件只是DrawRectangle和DrawLine方法调用 矩形部分看起来像是使用了
SystemColors.Control
颜色,加号/减号部分看起来像SystemColors.ControlText
(或黑色)
我希望有一些“更高层次”的方法,但这是正确的。
VisualStyleElement element = VisualStyleElement.TreeView.Glyph.Opened
VisualStyleRenderer renderer = new VisualStyleRenderer( element );
Size size = renderer.GetPartSize( graphics, ThemeSizeType.True );
...
renderer.DrawBackground( graphics, someRect );