【问题标题】:Draw loading circle on windows form在 Windows 窗体上绘制加载圆
【发布时间】:2011-06-08 11:57:36
【问题描述】:

如何在 Windows 窗体上绘制加载圆(动画)?是否有可能让它变得大而透明,以便表单上的底层文本仍然可见。

显示 gif 不是我正在寻找的一种解决方案。

谢谢。

【问题讨论】:

  • 请让我知道问题的第二部分是否有解决方案,“如果表单充满网格或按钮或文本框,我们如何确保一致性?”例如,在当前表单上方绘制这一层,以便底层的所有内容都是可见的?

标签: c++ winforms visual-c++ windows-forms-designer


【解决方案1】:

是的 - 您可以使用Graphics.DrawEllipse(用于一个或多个圆圈,具体取决于您尝试实现的确切 UI 效果)使用具有非透明 alpha 值的笔来执行此操作。

【讨论】:

  • 我不明白我们如何用这个函数调用绘制动画加载圆。加载圈示例:google.com/…
  • Graphics.DrawEllipse 是绘制单个圆的图元,您可以使用 alpha 值调整透明度。您可以为这些每次更新绘制一个“环”(使用基本的圆形绘制逻辑,例如逐步迭代 2*pi 弧度,并使用 cos(t)*radius,sin(t)*radius 来查找椭圆中心)。要制作动画,您需要在进度回调或计时器期间定期执行此操作。以下是有关该步骤的更多信息:stackoverflow.com/questions/11318/simple-animation-in-winforms
  • 这是关于 GDI+ 中 alpha 混合(不透明度)的 MSDN 页面 - 正如您从图像中看到的那样,您可以使用此功能使图形元素看起来“淡出”:msdn.microsoft.com/en-us/library/ms533803(v=VS.85).aspx跨度>
  • 另外 - 这是 CodeProject 上关于“如何在 .NET 中编写加载圆动画”的文章:codeproject.com/KB/cs/mrg_loadingcircle.aspx
  • 此外,如果表单上有一个按钮,我可以在那个地方看到中断。无论如何,谢谢。
猜你喜欢
  • 2019-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-20
  • 2011-11-13
  • 1970-01-01
  • 2020-04-23
  • 1970-01-01
相关资源
最近更新 更多