Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / ProgressBarRenderer.cs / 1 / ProgressBarRenderer.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms {
using System;
using System.Drawing;
using System.Diagnostics.CodeAnalysis;
using System.Windows.Forms.VisualStyles;
using Microsoft.Win32;
///
///
///
/// This is a rendering class for the ProgressBar control.
///
///
public sealed class ProgressBarRenderer {
//Make this per-thread, so that different threads can safely use these methods.
[ThreadStatic]
private static VisualStyleRenderer visualStyleRenderer = null;
//cannot instantiate
private ProgressBarRenderer() {
}
///
///
///
/// Returns true if this class is supported for the current OS and user/application settings,
/// otherwise returns false.
///
///
public static bool IsSupported {
get {
return VisualStyleRenderer.IsSupported; // no downlevel support
}
}
///
///
///
/// Renders a horizontal bar.
///
///
[
SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters") // Using Graphics instead of IDeviceContext intentionally
]
public static void DrawHorizontalBar(Graphics g, Rectangle bounds) {
InitializeRenderer(VisualStyleElement.ProgressBar.Bar.Normal);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a vertical bar.
///
///
[
SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters") // Using Graphics instead of IDeviceContext intentionally
]
public static void DrawVerticalBar(Graphics g, Rectangle bounds) {
InitializeRenderer(VisualStyleElement.ProgressBar.BarVertical.Normal);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a number of constant size horizontal chunks in the given bounds.
///
///
[
SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters") // Using Graphics instead of IDeviceContext intentionally
]
public static void DrawHorizontalChunks(Graphics g, Rectangle bounds) {
InitializeRenderer(VisualStyleElement.ProgressBar.Chunk.Normal);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a number of constant size vertical chunks in the given bounds.
///
///
[
SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters") // Using Graphics instead of IDeviceContext intentionally
]
public static void DrawVerticalChunks(Graphics g, Rectangle bounds) {
InitializeRenderer(VisualStyleElement.ProgressBar.ChunkVertical.Normal);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Returns the width/height of a single horizontal/vertical progress bar chunk.
///
///
public static int ChunkThickness {
get {
InitializeRenderer(VisualStyleElement.ProgressBar.Chunk.Normal);
return (visualStyleRenderer.GetInteger(IntegerProperty.ProgressChunkSize));
}
}
///
///
///
/// Returns the width/height of the space between horizontal/vertical progress bar chunks.
///
///
public static int ChunkSpaceThickness {
get {
InitializeRenderer(VisualStyleElement.ProgressBar.Chunk.Normal);
return (visualStyleRenderer.GetInteger(IntegerProperty.ProgressSpaceSize));
}
}
private static void InitializeRenderer(VisualStyleElement element) {
if (visualStyleRenderer == null) {
visualStyleRenderer = new VisualStyleRenderer(element);
}
else {
visualStyleRenderer.SetParameters(element);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ViewKeyConstraint.cs
- KeyPullup.cs
- QueryOptionExpression.cs
- IgnoreSectionHandler.cs
- NumberSubstitution.cs
- Point.cs
- XmlIgnoreAttribute.cs
- DataGridBoundColumn.cs
- GridViewCellAutomationPeer.cs
- AttachmentService.cs
- TraceContextRecord.cs
- SessionPageStatePersister.cs
- DataViewManagerListItemTypeDescriptor.cs
- ProviderMetadata.cs
- DataGridTextBox.cs
- ErrorTableItemStyle.cs
- DataServiceProcessingPipelineEventArgs.cs
- PageParser.cs
- DirectionalLight.cs
- FloaterBaseParaClient.cs
- ParsedRoute.cs
- GraphicsPathIterator.cs
- OuterGlowBitmapEffect.cs
- LogFlushAsyncResult.cs
- ModuleBuilder.cs
- QueryReaderSettings.cs
- TextTreeDeleteContentUndoUnit.cs
- ConstructorNeedsTagAttribute.cs
- NavigatorInput.cs
- PeerToPeerException.cs
- CqlErrorHelper.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- NumericUpDownAccelerationCollection.cs
- BindingContext.cs
- XmlHelper.cs
- TraceInternal.cs
- LoadWorkflowByInstanceKeyCommand.cs
- TextSimpleMarkerProperties.cs
- CatalogZoneAutoFormat.cs
- EncodingNLS.cs
- XMLSchema.cs
- AttachedPropertiesService.cs
- MenuItem.cs
- XmlTextAttribute.cs
- XmlAttributes.cs
- DataGridViewSelectedRowCollection.cs
- StringFormat.cs
- ConnectionStringsExpressionEditor.cs
- DataBoundLiteralControl.cs
- FileChangesMonitor.cs
- DataControlFieldCell.cs
- XmlCompatibilityReader.cs
- EdgeProfileValidation.cs
- EntityDataSourceContainerNameItem.cs
- Geometry.cs
- FactoryRecord.cs
- FormParameter.cs
- EntitySqlQueryCacheKey.cs
- WorkflowItemPresenter.cs
- MbpInfo.cs
- MetabaseServerConfig.cs
- HttpResponse.cs
- DataGridSortCommandEventArgs.cs
- InitiatorServiceModelSecurityTokenRequirement.cs
- basenumberconverter.cs
- CompositeDesignerAccessibleObject.cs
- ServiceModelSectionGroup.cs
- HttpException.cs
- SequentialActivityDesigner.cs
- DataObjectAttribute.cs
- MimeObjectFactory.cs
- DescendentsWalker.cs
- StaticSiteMapProvider.cs
- InvalidFilterCriteriaException.cs
- SimpleWorkerRequest.cs
- _IPv4Address.cs
- VisemeEventArgs.cs
- PolicyLevel.cs
- HMACMD5.cs
- HttpModuleAction.cs
- XmlSchemaExporter.cs
- CodeTypeOfExpression.cs
- Transactions.cs
- OutOfProcStateClientManager.cs
- FileDialogCustomPlaces.cs
- PageThemeParser.cs
- XmlNamedNodeMap.cs
- TableCell.cs
- FlowDocumentScrollViewer.cs
- PropertyChangingEventArgs.cs
- MimeMapping.cs
- ToolboxItemAttribute.cs
- WebPartDescriptionCollection.cs
- FileNameEditor.cs
- DataControlCommands.cs
- HelpInfo.cs
- TextFormatterImp.cs
- SharedPerformanceCounter.cs
- BounceEase.cs
- SQLStringStorage.cs