We all like the XP-themed controls, don't we? But do you also think the standard controls provided with the C# toolbox are not enough? Well I am trying to create a whole set containing existing controls, but also new controls that will (hopefully) blow your mind. I can already hear people screaming at me that the internet is stuffed with such controls created by various people. Now let me tell you that I am trying to be more innovative than the others. I have downloaded many controls for me to use, but there is always some feature missing that I need. So now I am going to create these controls with as many thinkable features as possible.
Windows XP like theming
I also dislike the dependence of UxTheme.dll to theme the controls, so these controls do not need Windows XP as the operating system. I paint the controls completely from scratch so the only thing you need to use these controls is the .NET Framework 1.1 and a version of Windows you prefer.
The ExtendedDotNET.Controls namespace
I created a class library which is called ExtendedDotNET.Controls. Hereunder, I will store all my controls in it so they are all packed in one nice library.
An overview of the
ExtendedDotNET.Controls namespace so far created:
The ExtendedDotNET.Controls.Panels namespace
This namespace contains all panel-like controls
This is a panel-like control. The default
System.Windows.Forms.Panel control hasn't got much features to present itself. This panel however has a nice XP-like view as you can see in the following image:
This control has the following properties:
The following property may need some explanation:
BorderStyle.None: doesn't draw a border.
BorderStyle.Single: draws a border with the given color and width.
BorderStyle.Raised3D: draws a raised border using the given color and width (not working yet).
BorderStyle.Sunken3D: draws a sunken border using the given color and width (not working yet).
BorderStyle.Shadow: draws the panel with a single border with given color, width, and adds a nice shadow.
Because this panel control is derived from the
System.Windows.Forms.Panel control, acting like a container, you are able to drop any control you like in it.
The ExtendedDotNET.Controls.Progress namespace
This namespace contains all progress bar controls
This is a progress bar control like the
System.Windows.Forms.ProgressBar but with much more features:
- Place the bar horizontal or vertical.
- Invert the progress direction in both horizontal and vertical mode.
- Change the border style.
- Change every single color you can find in this control.
- Add a caption.
- Change the dash width and spacing.
- Change the value by dragging your mouse.
This control has the following properties:
The following properties may need some explanation:
None: The progress bar doesn't have a caption.
Percent: The progress bar shows the percentage [0%..100%] of its progress.
Value: The progress bar shows the value [minimum .. maximum] of its progress.
Custom: The progress bar shows the string given by the
Caption property. This string can contain variable fields (<PERCENTAGE> and <VALUE>) which will be converted to there corresponding values.
- Setting this to
true will allow the user to change the value dragging the bar with the mouse.
None: The progress bar doesn't have an edge.
Rectangle: The progress bar has a rectangle edge.
Rounded: The progress bar has a rounded edge like the XP-style progress bar.
false: The progress bar runs from left to right.
true: The progress bar runs from right to left.
false: The progress bar runs from top to bottom.
true: The progress bar runs from bottom to top.
Dashed: creates a dashed bar like the XP-style progress bar.
Solid: creates a solid bar like the old-style progress bar.
- The category "Properties":
Maximum property lets you change the maximum value of the range of the control (type
Minimum property lets you change the minimum value of the range of the control (type
Step property lets you change the amount by which a call to the
PerformStep method increases the current position of the progress bar (type
Value property lets you change the current position of the progress bar (type
How To Use
Right click on the Toolbox and choose Add/Remove Items..., there you browse for the ExtendedDotNET.Controls.dll and press OK. All the controls will be added in the ToolBox under "My User Controls".
I will try to keep creating these controls and I will keep this document up-to-date. You can always mail me for suggestions because I obviously must have forgot some important features.
Version 0.1 - 2005 October 26