【发布时间】:2020-01-25 22:57:44
【问题描述】:
我正在使用 C# 开发一个桌面应用程序,该应用程序需要使用动态值填充面板背景。例如,如果面板的宽度为 200 像素并且进度属性当前达到 50%,那么面板的 100 像素应该是绿色的剩下的 100px 的颜色会保持原样。
【问题讨论】:
-
我确实尝试过不同的 panel_paint 事件,但没有成功
-
使用 ProgressBar 肯定会更容易(Aero 知道进度条是什么,所以它会适当地为其设置动画等)?如果您不顾一切地自己动手,就不会画我自己的矩形;我只需在第一个面板中添加另一个面板,停靠在左侧,宽度 = 200 * 50/100,使新面板的背景颜色变为绿色,并随着进度的发生改变其宽度
-
我确实尝试过不同的 panel_paint 事件,但没有成功 我们该怎么做?油漆是正确的事件;显示你的代码!!!您可以通过调用 panel.Invalidate() 从任何进展或注意到的地方触发它。您使用 e.Graphics.FillRectangle(Brushes.Green) 填充一个矩形并将背景色设置为 Color.Red。做双缓冲面板!! - 如果使用两个面板,或者使用 Caius 的建议!
-
@CaiusJard 实际上,我确实尝试过您关于使用进度条的想法,但不幸的是,使用进度条会带来使用不同颜色的挑战。虽然面板内的面板是我要尝试的。
-
我们必须查看您的绘制代码才能为您提供帮助。
标签: c# winforms desktop-application