c# – 如何引用一些Windows元素(滚动条,推入选项按钮等)使用的BG颜色?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 如何引用一些Windows元素(滚动条,推入选项按钮等)使用的BG颜色?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1627字,纯文字阅读大概需要3分钟。
内容图文
有谁知道我如何在C#中引用系统背景颜色,用于滚动条或推入选项按钮或标签等元素(作为下图中“tabPage1”的背景)?
或者,如果不存在预定义的const,那么任何算法如何用这种颜色创建一个Brush?谢谢!
我直观的第一选择SystemColors.ScrollBar与.Control或.ButtonFace(‘tabPage2’的BG)相同,这实际上是滚动条的“面部”颜色,而不是我称之为“背景”的颜色.
SystemColors.ControlLight或SystemColors.ControlLightLight不再接近..
当放大时,控件的那个区域看起来像带有.Control和.Window像素的棋盘格,所以对我来说暗示这种颜色可能会抖动;也许这表明标准SystemColors枚举没有定义它的原因?我如何将它应用于另一个控件?
PS:我正在尝试增强自定义TabControl(它支持可禁用的标签 – std控件中缺少的另一个好东西,但这是另一个已经解决过的故事),所以当它的.Appearance设置为Buttons或FlatButtons时,它看起来很相似到原件(如上图所示).选定的选项卡由推入按钮指示,但其背景颜色设置为Control或ButtonFace:
解决方法:
好吧,事实证明这比我想象的要简单得多 – 它只是用于填充BG-rect的Brush:
protected override void OnDrawItem( DrawItemEventArgs e )
{
base.OnDrawItem( e );
int i= e.Index;
TabPage p= this.TabPages[ i ];
Rectangle r= GetTabRect( i );
Brush br= null;
if( this.Appearance != TabAppearance.Normal && i == this.SelectedIndex )
br= new HatchBrush( HatchStyle.Percent50, SystemColors.Control, SystemColors.Window );
else
br= new SolidBrush( p.BackColor );
try // fill the BG-rectangle
{ e.Graphics.FillRectangle( br, r ); }
finally
{ br.Dispose( ); } // make sure brush is disposed of
.. // the rest of the event-handler
}
唯一的技巧是无法应用using(Brush br = new ..){..}块,因为初始化与结果对象类型不同.因此,一个有点丑陋的尝试 – 终结构造.充当魅力!
内容总结
以上是互联网集市为您收集整理的c# – 如何引用一些Windows元素(滚动条,推入选项按钮等)使用的BG颜色?全部内容,希望文章能够帮你解决c# – 如何引用一些Windows元素(滚动条,推入选项按钮等)使用的BG颜色?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。