Gauges for WinForms incorporates several key features, including the following:
When setting up C1Gauge, choose between radial or linear shapes. Radial gauges can be circular, helical, arc curve, clamshell, or half-circular and linear gauges can be horizontal, vertical, tilted, or free-formed.
All graphics are vector-based in C1Gauge unless you specify the pixel-based size. So the gauge paints itself perfectly in any size, and all inner elements resize proportionally.
Bind C1Gauge to a data source at design-time using standard .NET data-binding techniques. You can bind individual pointers to different data sources (up to five pointers for a single Gauge).
There's no limit to the number of pointers and scales one gauge can hold. You can add multiple related or disjointed scales to one gauge, or overlay multiple gauges for more layout options. Scales can be non-uniform: linear or logarithmic. It's possible to create dynamic scales. You can also bind the beginning and ending of a scale to pointers.
With Gauges for WinForms you can create non-linear or linear shaped ranges. Customize the exact location and size of the ranges to best suit any desired look. Map colors to value thresholds to display a multi-colored range with optional gradient blending. Ranges can also be bound to the pointers for a more dramatic display. You can highlight the current value if you bind some color in the range (as well as in markers and labels) to the pointer. So you can, for example, display the progress bar using a single range object with the bound color.
Apply standard or custom .NET numeric formats to all gauge labels and value indicators to display decimal places, percents, currency, and so on. The static text can appear on labels as part of the custom numeric format. You can also use the special event that gives programmatic control over the label formatting. C1Gauge can automatically rotate labels for radial gauges so that they are always most readable to users. You can specify additional rotation, change alignment, and radial/orthogonal offset to achieve interesting effects.
Markers are visual cues that can be placed at specific values on the gauge scale. These are useful for comparing the gauge value to some other predetermined value. Markers can be shapes or custom images. In the same way as labels, markers can be rotated or not rotated for radial gauges. You can apply additional rotation, change alignment and offset of gauge markers.
You can display visual indications based upon value thresholds using bound labels and markers. Use these as state indicators in addition to or instead of ranges to visually display the value as a color or an image. For example, the background color of a marker or the marker’s image can depend on the pointer value. Or you can attach the fixed or movable label to a pointer and display the current value at the given location.
Choose from the predefined pointer shapes, customize the shape, or import your own custom image to use as the pointer. Create common pointer shapes for use with multiple pointers. You can also specify the exact position of the pointer origin in radial and linear gauges. This allows you to decentralize the pointer to either side or the bottom of the gauge.
The gauge pointer can indicate that the value is not set. If the current value is Double.NaN, then the pointer moves to the special Off Position. You can display a marker and a label at the off position. When using interaction features, the user can click at this position to “turn off” the gauge, or reset its value to Double.NaN.
Set the time interval so the gauge pointer will animate smoothly as the value changes. You can also decrease the frequency of redrawing for the gauge control if the source value is changed too frequently for observation.
Create any look desirable by customizing the face and cover shapes of the gauge using the rich set of style attributes available. You can even simulate a glassing effect using simple shapes. If shapes are not enough, you can add images. It's possible to apply various effects to images, such as rotation, flipping, changing the hue, saturation, lightness, and transparency.
The common collections of fillings, gradients, shapes, images, and so on allow the user to apply the same settings to multiple gauge items. Also, when you change these common settings, all related items will be affected at once. For example, you can create a few bound indicators that share the same mapping of images to value thresholds. This saves memory and facilitates subsequent changes.
Any parts of C1Gauge can be hit-testable. It’s easy to change visual appearance of a gauge item when it becomes hot, pressed, or disabled. The visual state of gauge items can be changed smoothly using the transition effect that hides the previous state and shows the new state during the given time interval. The special events occur when the user clicks various elements or drags the gauge pointer. You may update the pointer value from these events with optional rounding to the uniform discrete set of values specified by the snap interval.
Align multiple gauges into one container using C1Gauge. Gauges can be overlapped or placed side-by-side. Since all graphics are vector-based you can resize the container control in arbitrary way. The fine-tuning settings give an ability to maintain the aspect ratio and relative position of individual gauges when resizing the container control.
Create several views (or "skins") for a gauge or for the container control. Using views you can change the whole look of a gauge without breaking any existent scales, data, and event bindings. Views belong to a concrete gauge or C1Gauge. You can’t apply the same view to different gauges.
Rapidly decrease development time by saving and re-using gauge templates. You can create templates for individual gauges or for the whole container control. C1Gauge also ships with several pre-designed templates to get started.