Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ProgressBarRenderer.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- PopupEventArgs.cs
- OdbcDataAdapter.cs
- DefaultPropertyAttribute.cs
- GradientBrush.cs
- OleDbDataReader.cs
- PageRanges.cs
- _WinHttpWebProxyDataBuilder.cs
- EntityContainerEntitySet.cs
- MissingMethodException.cs
- WebPartActionVerb.cs
- KeyProperty.cs
- RawStylusSystemGestureInputReport.cs
- EntityDataSourceWizardForm.cs
- TcpChannelHelper.cs
- PropertyMapper.cs
- DiffuseMaterial.cs
- NavigationProgressEventArgs.cs
- HostedNamedPipeTransportManager.cs
- SystemPens.cs
- DataSourceDescriptorCollection.cs
- GAC.cs
- FloatUtil.cs
- AnonymousIdentificationModule.cs
- UnmanagedMemoryStreamWrapper.cs
- Accessors.cs
- TableItemStyle.cs
- DataGridViewColumnConverter.cs
- StringUtil.cs
- x509utils.cs
- AssemblyInfo.cs
- SQLInt16Storage.cs
- newinstructionaction.cs
- ErrorTableItemStyle.cs
- TextEndOfLine.cs
- StreamGeometryContext.cs
- EventListener.cs
- OpacityConverter.cs
- ItemsPresenter.cs
- X500Name.cs
- View.cs
- DataGridAutomationPeer.cs
- FlowDocumentPaginator.cs
- CapacityStreamGeometryContext.cs
- HintTextMaxWidthConverter.cs
- DependentList.cs
- PartialCachingAttribute.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- DictionaryBase.cs
- Filter.cs
- DSASignatureDeformatter.cs
- SqlBulkCopyColumnMappingCollection.cs
- ZoneButton.cs
- CLRBindingWorker.cs
- StorageEndPropertyMapping.cs
- SecurityElement.cs
- MetabaseReader.cs
- DelegatingConfigHost.cs
- Gdiplus.cs
- ImageAttributes.cs
- UserControl.cs
- SerializationAttributes.cs
- XmlSchemaObjectTable.cs
- Mapping.cs
- DrawingDrawingContext.cs
- CodeObject.cs
- TextTreeRootTextBlock.cs
- XamlTypeMapper.cs
- WmlTextViewAdapter.cs
- ListDictionary.cs
- EncodingTable.cs
- FacetValues.cs
- XmlSchemaValidationException.cs
- PostBackOptions.cs
- PersonalizationDictionary.cs
- ProcessThread.cs
- CustomAttribute.cs
- SystemFonts.cs
- CounterCreationData.cs
- _CookieModule.cs
- ToolboxSnapDragDropEventArgs.cs
- UInt16Converter.cs
- Pair.cs
- DataSourceCache.cs
- TextEditorContextMenu.cs
- ReturnType.cs
- NameNode.cs
- DataSysAttribute.cs
- SerializationAttributes.cs
- RegexParser.cs
- LinkUtilities.cs
- DataGridViewIntLinkedList.cs
- ControlBuilder.cs
- MessageQueuePermissionEntry.cs
- XmlSchemaSimpleType.cs
- DataRecordInternal.cs
- ImpersonationContext.cs
- Descriptor.cs
- BaseUriHelper.cs
- SqlNodeAnnotation.cs
- MLangCodePageEncoding.cs