ASP.NET PHP.NET CODEITWELL MASHABLE OPENSOURCEWEBDESIGN BLOGDUMPS FACEBOOK APPS

Home ASP.NET PHP WINDOW Web Programming Web Logic Web Design css Archives
Thursday, October 8

Vista style Progress bar (Vista Controls - I)

0 comments

Introduction

This is article under the section of Windows Vista Control. Vista is very cool in its look and feel. So, using vista style controls can improve the visual appearance of our application.

This article is about creating a vista style progress bar in .net winforms.


header panel outlook

This will support three themes Green, Red and Blue. However you can add as many as you want by modifying its source code.

header panel outlook

You can specify its progress value in float so that it gives you an accurate progress position.

Features
You can customize follwing things in Vista Progree bar

* Theme Color
* Progress Value

Source code for creating Extended header panel control.

  • public partial class VistaProgressBar : UserControl
  • {
  • Color _border = Color.FromArgb(178, 178, 178);
  • Color _backRemain1 = Color.FromArgb(202, 202, 202);
  • Color _backRemain2 = Color.FromArgb(234, 234, 234);
  • Color _backRemain3 = Color.FromArgb(219, 219, 219);
  • Color _backRemain4 = Color.FromArgb(243, 243, 243);
  • Color _backActive1 = Color.FromArgb(180, 0, 0);
  • Color _backActive2 = Color.FromArgb(252, 0, 0);
  • Color _backActive3 = Color.FromArgb(255, 127, 127);
  • Color _backActive4 = Color.FromArgb(255, 205, 205);
  • float _value = 50.0F;
  • [Browsable(true)]
  • public float Value
  • {
  • get { return _value; }
  • set
  • {
  • if (_value > 100.0F) _value = 100.0F;
  • if (_value < 1.0F) _value = 1.0F;
  • _value = value;
  • Invalidate();
  • }
  • }
  • VistaProgressBarTheme _theme
  • = VistaProgressBarTheme.Default;
  • [Browsable(true)]
  • public VistaProgressBarTheme Theme
  • {
  • get { return _theme; }
  • set
  • {
  • _theme = value;
  • CalculateThems();
  • Invalidate();
  • }
  • }
  • public VistaProgressBar()
  • {
  • this.SetStyle(ControlStyles.DoubleBuffer, true);
  • this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
  • this.SetStyle(ControlStyles.ResizeRedraw, true);
  • this.SetStyle(ControlStyles.UserPaint, true);
  • this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
  • InitializeComponent();
  • this.BackColor = Color.Transparent;
  • CalculateThems();
  • }
  • protected override void OnPaintBackground(PaintEventArgs e)
  • {
  • base.OnPaintBackground(e);
  • Rectangle rectUpper = new Rectangle(0, 0,
  • this.Width, this.Height / 2 + 2);
  • Rectangle rectLower = new Rectangle(0, this.Height / 2,
  • this.Width, this.Height - (this.Height / 2));
  • GraphicsPath pathLower = OwfGraphics.GetRoundPath(rectLower, 2);
  • GraphicsPath pathUpper = OwfGraphics.GetRoundPath(rectUpper, 2);
  • using (Brush brushUpper = new LinearGradientBrush(rectUpper,
  • _backRemain4, _backRemain3, LinearGradientMode.Vertical))
  • {
  • e.Graphics.FillPath(brushUpper, pathUpper);
  • }
  • using (Brush brushLower = new LinearGradientBrush(rectLower,
  • _backRemain1, _backRemain2, LinearGradientMode.Vertical))
  • {
  • e.Graphics.FillPath(brushLower, pathLower);
  • }
  • }
  • private void VistaProgressBar_Paint(object sender,
  • PaintEventArgs e)
  • {
  • float width = (((float)this.Width - 2) * _value) / 100.0F;
  • Rectangle rectFull = new Rectangle(0, 0, this.Width - 1,
  • this.Height - 1);
  • GraphicsPath pathFull = OwfGraphics.GetRoundPath(rectFull, 2);
  • Rectangle rectUpper = new Rectangle(1, 1, (int)width,
  • this.Height / 2 + 1);
  • GraphicsPath pathUpper = OwfGraphics.GetRoundPath(rectUpper, 1);
  • Rectangle rectLower = new Rectangle(1, this.Height / 2,
  • (int)width, this.Height - (this.Height / 2) - 1);
  • GraphicsPath pathLower = OwfGraphics.GetRoundPath(rectLower, 1);
  • using (Brush brushUpper = new LinearGradientBrush(rectUpper,
  • _backActive4, _backActive3, LinearGradientMode.Vertical))
  • {
  • e.Graphics.FillPath(brushUpper, pathUpper);
  • }
  • using (Brush brushLower = new LinearGradientBrush(rectLower,
  • _backActive1, _backActive2, LinearGradientMode.Vertical))
  • {
  • e.Graphics.FillPath(brushLower, pathLower);
  • }
  • using (Pen pen = new Pen(_border))
  • {
  • e.Graphics.DrawPath(pen, pathFull);
  • }
  • }
  • void CalculateThems()
  • {
  • switch (_theme)
  • {
  • case VistaProgressBarTheme.Red:
  • _backActive1 = Color.FromArgb(180, 0, 0);
  • _backActive2 = Color.FromArgb(252, 0, 0);
  • _backActive3 = Color.FromArgb(255, 127, 127);
  • _backActive4 = Color.FromArgb(255, 205, 205);
  • break;
  • case VistaProgressBarTheme.Default:
  • case VistaProgressBarTheme.Green:
  • _backActive1 = Color.FromArgb(12, 182, 20);
  • _backActive2 = Color.FromArgb(55, 217, 60);
  • _backActive3 = Color.FromArgb(117, 226, 119);
  • _backActive4 = Color.FromArgb(171, 237, 171);
  • break;
  • case VistaProgressBarTheme.Blue:
  • _backActive1 = Color.FromArgb(8, 49, 216);
  • _backActive2 = Color.FromArgb(22, 106, 238);
  • _backActive3 = Color.FromArgb(102, 171, 255);
  • _backActive4 = Color.FromArgb(140, 192, 255);
  • break;
  • }
  • }
  • }


Comments
0 comments
Do you have any suggestions? Add your comment. Please don't spam!
Subscribe to post feed

Your comments here...

Some Useful Books

http://books.google.com.np/books?id=Lan3g76cCFYC&lpg=PP1&dq=photoshop%20shortcuts&hl=en&pg=PT1#v=onepage&q=photoshop%20shortcuts&f=false

About Me

SubscribeSubscribe via RSS

SubscribeRecent Posts

SubscribeHot Links

Archive

Live Traffic Feed