首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# ToolStripPanel绘图问题

C# ToolStripPanel绘图问题
EN

Stack Overflow用户
提问于 2009-06-08 19:21:48
回答 2查看 1.1K关注 0票数 0

我正在尝试使ToolStripPanel具有与嵌入式ToolStrips相同的绘制样式,以便它看起来像一个连续的条形图。我让ToolStrips使用ToolStripProfessionalRenderer,这样它们的样式就和Windows任务栏一样。

我已经通过创建一个从ToolStripProfessionalRenderer派生的新渲染器来接近:

代码语言:javascript
复制
   class CustomRenderer : ToolStripProfessionalRenderer
   {
      protected override void OnRenderToolStripPanelBackground(ToolStripPanelRenderEventArgs e)
      {
         base.OnRenderToolStripPanelBackground(e);

         LinearGradientBrush lgb = new LinearGradientBrush(e.ToolStripPanel.ClientRectangle, this.ColorTable.ToolStripGradientBegin, this.ColorTable.ToolStripGradientEnd, LinearGradientMode.Vertical);
         e.Graphics.FillPath(lgb, e.ToolStripPanel.ClientRectangle);
      }
   }

这会创建具有正确颜色的渐变外观,但它们并不完全匹配。似乎渐变的颜色数量较多,因此展开的时间会更长。

我已经考虑了ToolStrips的边界(这段代码中没有显示),但它们仍然不能很好地匹配。

有人知道怎么做到这一点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-11 14:40:34

我终于明白了这一点--我现在看起来很明显。

ToolStripPanelProfessionalRenderer中的ColorTable有三种我们感兴趣的颜色:

ColorTable.ToolStripGradientBegin ColorTable.ToolStripGradientMiddle ColorTable.ToolStripGradientEnd

背景需要分两部分绘制--顶部渐变和底部渐变。

顶部从“开始”颜色到“中间”颜色,底部从“中间”颜色到“结束”颜色。

看起来很完美..。

票数 2
EN

Stack Overflow用户

发布于 2009-06-08 20:24:53

检查设置的颜色深度。我们在没有32位颜色的系统上遇到了类似的问题。任何小于32位的颜色都会导致细微的差异。32位颜色系统看起来很好。

我们一直没有找到解决方案,但也许你可以将32位颜色要求强加给你的用户。;-)

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

https://stackoverflow.com/questions/966496

复制
相关文章

相似问题

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