在 Blend 中用图像制作进度条

Posted

技术标签:

【中文标题】在 Blend 中用图像制作进度条【英文标题】:Make a progress bar out of a image in Blend 【发布时间】:2015-05-04 10:48:03 【问题描述】:

我一直在尝试在 Blend 中将图像作为进度条用于程序中以查看还剩多少时间,并且为了适应整个 GUI,我想要一个服装进度条而不是默认的绿色进度条,我有 2 个我想使用的图像,拿着酒吧的硬币容器和绿色酒吧本身。唯一的问题是我不知道如何设置这些东西。

【问题讨论】:

【参考方案1】:

除非您禁用应用程序的视觉样式,否则您无法更改进度条的颜色。我的建议是创建一个自定义控件,一个简单的方法是在每次进度更改时填充一个矩形。 因此,使用 Panel 作为容器并使用 PictureBox 在其上绘制停靠在容器上。在 PictureBox 的 Paint 事件中,检查进度是否发生变化(进度以 int 形式存储在属性或字段中)以及是否绘制了剩余的矩形:

//check if progress changed ex. if( lastProg != this.Progress ) 
using ( Graphics g = Graphics.FromImage( pb.Image ) ) 
    using( Brush brush = new SolidBrush( myColor ) ) 
        //calculate width and x here
        g.FillRectangle( brush, x, 0, width, pb.Heigth );
    

您需要知道它与其宽度成正比,因此如果它的大小可能因用户调整窗口大小而发生变化,您也必须对其进行缩放。 毕竟你可以添加一些其他的视觉风格,所以当进度真的很慢时,它感觉仍然有效。 嗯,这就是我的解决方案,如果你需要一个样品,这里是by CodeProject。

【讨论】:

以上是关于在 Blend 中用图像制作进度条的主要内容,如果未能解决你的问题,请参考以下文章

Windows Phone -> MS Blend 4 中的动画点进度条

带有图像和圆形进度条的圆形按钮

不可见的进度条未通过代码显示

怎么用css制作进度条?

VB怎么制作进度条?

使用 CSS 慢慢地用颜色填充 SVG 图像(如进度条)