Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ScrollBarRenderer.cs / 1305376 / ScrollBarRenderer.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms {
using System;
using System.Drawing;
using System.Windows.Forms.VisualStyles;
using System.Diagnostics.CodeAnalysis;
using Microsoft.Win32;
///
///
///
/// This is a rendering class for the ScrollBar control.
///
///
public sealed class ScrollBarRenderer {
//Make this per-thread, so that different threads can safely use these methods.
[ThreadStatic]
private static VisualStyleRenderer visualStyleRenderer = null;
//cannot instantiate
private ScrollBarRenderer() {
}
///
///
///
/// 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 ScrollBar arrow button.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawArrowButton(Graphics g, Rectangle bounds, ScrollBarArrowButtonState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.ArrowButton.LeftNormal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a horizontal ScrollBar thumb.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawHorizontalThumb(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.ThumbButtonHorizontal.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a vertical ScrollBar thumb.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawVerticalThumb(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.ThumbButtonVertical.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a horizontal ScrollBar thumb grip.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawHorizontalThumbGrip(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.GripperHorizontal.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a vertical ScrollBar thumb grip.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawVerticalThumbGrip(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.GripperVertical.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a horizontal ScrollBar thumb.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawRightHorizontalTrack(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.RightTrackHorizontal.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a horizontal ScrollBar thumb.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawLeftHorizontalTrack(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.LeftTrackHorizontal.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a vertical ScrollBar thumb in the center of the given bounds.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawUpperVerticalTrack(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.UpperTrackVertical.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a vertical ScrollBar thumb in the center of the given bounds.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawLowerVerticalTrack(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.LowerTrackVertical.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a ScrollBar size box in the center of the given bounds.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawSizeBox(Graphics g, Rectangle bounds, ScrollBarSizeBoxState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.SizeBox.LeftAlign, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Returns the size of the ScrollBar thumb grip.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static Size GetThumbGripSize(Graphics g, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.GripperHorizontal.Normal, (int)state);
return visualStyleRenderer.GetPartSize(g, ThemeSizeType.True);
}
///
///
///
/// Returns the size of the ScrollBar size box.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static Size GetSizeBoxSize(Graphics g, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.SizeBox.LeftAlign, (int)state);
return visualStyleRenderer.GetPartSize(g, ThemeSizeType.True);
}
private static void InitializeRenderer(VisualStyleElement element, int state) {
if (visualStyleRenderer == null) {
visualStyleRenderer = new VisualStyleRenderer(element.ClassName, element.Part, state);
}
else {
visualStyleRenderer.SetParameters(element.ClassName, element.Part, state);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Windows.Forms {
using System;
using System.Drawing;
using System.Windows.Forms.VisualStyles;
using System.Diagnostics.CodeAnalysis;
using Microsoft.Win32;
///
///
///
/// This is a rendering class for the ScrollBar control.
///
///
public sealed class ScrollBarRenderer {
//Make this per-thread, so that different threads can safely use these methods.
[ThreadStatic]
private static VisualStyleRenderer visualStyleRenderer = null;
//cannot instantiate
private ScrollBarRenderer() {
}
///
///
///
/// 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 ScrollBar arrow button.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawArrowButton(Graphics g, Rectangle bounds, ScrollBarArrowButtonState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.ArrowButton.LeftNormal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a horizontal ScrollBar thumb.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawHorizontalThumb(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.ThumbButtonHorizontal.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a vertical ScrollBar thumb.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawVerticalThumb(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.ThumbButtonVertical.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a horizontal ScrollBar thumb grip.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawHorizontalThumbGrip(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.GripperHorizontal.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a vertical ScrollBar thumb grip.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawVerticalThumbGrip(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.GripperVertical.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a horizontal ScrollBar thumb.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawRightHorizontalTrack(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.RightTrackHorizontal.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a horizontal ScrollBar thumb.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawLeftHorizontalTrack(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.LeftTrackHorizontal.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a vertical ScrollBar thumb in the center of the given bounds.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawUpperVerticalTrack(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.UpperTrackVertical.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a vertical ScrollBar thumb in the center of the given bounds.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawLowerVerticalTrack(Graphics g, Rectangle bounds, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.LowerTrackVertical.Normal, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Renders a ScrollBar size box in the center of the given bounds.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static void DrawSizeBox(Graphics g, Rectangle bounds, ScrollBarSizeBoxState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.SizeBox.LeftAlign, (int)state);
visualStyleRenderer.DrawBackground(g, bounds);
}
///
///
///
/// Returns the size of the ScrollBar thumb grip.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static Size GetThumbGripSize(Graphics g, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.GripperHorizontal.Normal, (int)state);
return visualStyleRenderer.GetPartSize(g, ThemeSizeType.True);
}
///
///
///
/// Returns the size of the ScrollBar size box.
///
///
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally
public static Size GetSizeBoxSize(Graphics g, ScrollBarState state) {
InitializeRenderer(VisualStyleElement.ScrollBar.SizeBox.LeftAlign, (int)state);
return visualStyleRenderer.GetPartSize(g, ThemeSizeType.True);
}
private static void InitializeRenderer(VisualStyleElement element, int state) {
if (visualStyleRenderer == null) {
visualStyleRenderer = new VisualStyleRenderer(element.ClassName, element.Part, state);
}
else {
visualStyleRenderer.SetParameters(element.ClassName, element.Part, state);
}
}
}
}
// 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
- ComponentChangedEvent.cs
- TreeView.cs
- ApplicationProxyInternal.cs
- DataException.cs
- CatalogPart.cs
- AnchoredBlock.cs
- BaseTemplateParser.cs
- EmptyControlCollection.cs
- DateTimeFormatInfo.cs
- AtomMaterializerLog.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- InvalidOperationException.cs
- PartialCachingAttribute.cs
- EntityCommandExecutionException.cs
- UIElementIsland.cs
- Button.cs
- OracleDataAdapter.cs
- Renderer.cs
- SqlLiftIndependentRowExpressions.cs
- UIHelper.cs
- AsymmetricKeyExchangeFormatter.cs
- EnumType.cs
- Set.cs
- ApplicationDirectory.cs
- Attachment.cs
- HttpResponse.cs
- KeySplineConverter.cs
- FlatButtonAppearance.cs
- TextComposition.cs
- CompiledQuery.cs
- SchemaManager.cs
- EditorZoneDesigner.cs
- EntityContainerAssociationSetEnd.cs
- DataGridViewCheckBoxCell.cs
- DataGridViewImageColumn.cs
- SettingsAttributeDictionary.cs
- CompositeFontParser.cs
- Misc.cs
- PointCollection.cs
- SerTrace.cs
- XmlSchemaSimpleTypeUnion.cs
- X500Name.cs
- WebBrowserNavigatedEventHandler.cs
- ImageField.cs
- Renderer.cs
- WindowsRegion.cs
- DataGridCellEditEndingEventArgs.cs
- RMEnrollmentPage3.cs
- Msec.cs
- SplitterEvent.cs
- QueryReaderSettings.cs
- TextDecorations.cs
- QueueProcessor.cs
- PackageProperties.cs
- DbDataSourceEnumerator.cs
- XmlSchemaAttributeGroup.cs
- AdornerLayer.cs
- CellParaClient.cs
- BrushConverter.cs
- ConfigurationPropertyCollection.cs
- GeneralTransform.cs
- RegisterInfo.cs
- SByteStorage.cs
- WebControlParameterProxy.cs
- CalendarButton.cs
- SystemInfo.cs
- AnnotationComponentManager.cs
- StringExpressionSet.cs
- TransactionException.cs
- ClientRoleProvider.cs
- ChannelBinding.cs
- Button.cs
- HttpRawResponse.cs
- TextProviderWrapper.cs
- ObjectAssociationEndMapping.cs
- FixedSOMTextRun.cs
- WebMethodAttribute.cs
- WindowsPrincipal.cs
- dbdatarecord.cs
- BlockExpression.cs
- DataReceivedEventArgs.cs
- WSSecurityPolicy12.cs
- SetterBaseCollection.cs
- TextDpi.cs
- DataGridClipboardHelper.cs
- XmlNode.cs
- XmlQueryRuntime.cs
- Tokenizer.cs
- ArraySet.cs
- MasterPageParser.cs
- IdentityModelDictionary.cs
- QilBinary.cs
- EdmComplexPropertyAttribute.cs
- DefaultClaimSet.cs
- EpmTargetPathSegment.cs
- DesignerCalendarAdapter.cs
- HyperLinkColumn.cs
- EventSinkHelperWriter.cs
- PackageRelationshipSelector.cs
- Point3DCollectionConverter.cs