Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / WinForms / Managed / System / WinForms / TrackBarRenderer.cs / 1 / TrackBarRenderer.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; ////// /// public sealed class TrackBarRenderer { //Make this per-thread, so that different threads can safely use these methods. [ThreadStatic] private static VisualStyleRenderer visualStyleRenderer = null; const int lineWidth = 2; //cannot instantiate private TrackBarRenderer() { } ////// This is a rendering class for the TrackBar control. /// ////// /// public static bool IsSupported { get { return VisualStyleRenderer.IsSupported; // no downlevel support } } ////// Returns true if this class is supported for the current OS and user/application settings, /// otherwise returns false. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawHorizontalTrack(Graphics g, Rectangle bounds) { InitializeRenderer(VisualStyleElement.TrackBar.Track.Normal, 1); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a horizontal track. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawVerticalTrack(Graphics g, Rectangle bounds) { InitializeRenderer(VisualStyleElement.TrackBar.TrackVertical.Normal, 1); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a vertical track. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawHorizontalThumb(Graphics g, Rectangle bounds, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.Thumb.Normal, (int)state); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a horizontal thumb. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawVerticalThumb(Graphics g, Rectangle bounds, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbVertical.Normal, (int)state); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a vertical thumb. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawLeftPointingThumb(Graphics g, Rectangle bounds, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbLeft.Normal, (int)state); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a constant size left pointing thumb centered in the given bounds. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawRightPointingThumb(Graphics g, Rectangle bounds, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbRight.Normal, (int)state); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a constant size right pointing thumb centered in the given bounds. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawTopPointingThumb(Graphics g, Rectangle bounds, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbTop.Normal, (int)state); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a constant size top pointing thumb centered in the given bounds. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawBottomPointingThumb(Graphics g, Rectangle bounds, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbBottom.Normal, (int)state); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a constant size bottom pointing thumb centered in the given bounds. /// ////// /// [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")] // PM team has reviewed and decided on naming changes already [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawHorizontalTicks(Graphics g, Rectangle bounds, int numTicks, EdgeStyle edgeStyle) { if (numTicks <= 0 || bounds.Height <= 0 || bounds.Width <= 0 || g == null) { return; } InitializeRenderer(VisualStyleElement.TrackBar.Ticks.Normal, 1); //trivial case -- avoid calcs if (numTicks == 1) { visualStyleRenderer.DrawEdge(g, new Rectangle(bounds.X, bounds.Y, lineWidth, bounds.Height), Edges.Left, edgeStyle, EdgeEffects.None); return; } float inc = ((float)bounds.Width - lineWidth) / ((float)numTicks - 1); while (numTicks > 0) { //draw the nth tick float x = bounds.X + ((float)(numTicks - 1)) * inc; visualStyleRenderer.DrawEdge(g, new Rectangle((int)Math.Round(x), bounds.Y, lineWidth, bounds.Height), Edges.Left, edgeStyle, EdgeEffects.None); numTicks--; } } ////// Renders a horizontal tick. /// ////// /// [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")] // PM team has reviewed and decided on naming changes already [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawVerticalTicks(Graphics g, Rectangle bounds, int numTicks, EdgeStyle edgeStyle) { if (numTicks<=0 || bounds.Height <= 0 || bounds.Width<=0 || g == null ) { return; } InitializeRenderer(VisualStyleElement.TrackBar.TicksVertical.Normal, 1); //trivial case if (numTicks == 1) { visualStyleRenderer.DrawEdge(g, new Rectangle(bounds.X, bounds.Y, bounds.Width, lineWidth), Edges.Top, edgeStyle, EdgeEffects.None); return; } float inc = ((float)bounds.Height - lineWidth) / ((float)numTicks - 1); while (numTicks > 0) { //draw the nth tick float y = bounds.Y + ((float)(numTicks - 1)) * inc; visualStyleRenderer.DrawEdge(g, new Rectangle(bounds.X, (int)Math.Round(y), bounds.Width, lineWidth), Edges.Top, edgeStyle, EdgeEffects.None); numTicks--; } } ////// Renders a vertical tick. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static Size GetLeftPointingThumbSize(Graphics g, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbLeft.Normal, (int)state); return (visualStyleRenderer.GetPartSize(g, ThemeSizeType.True)); } ////// Returns the size of a left pointing thumb. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static Size GetRightPointingThumbSize(Graphics g, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbRight.Normal, (int)state); return (visualStyleRenderer.GetPartSize(g, ThemeSizeType.True)); } ////// Returns the size of a right pointing thumb. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static Size GetTopPointingThumbSize(Graphics g, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbTop.Normal, (int)state); return (visualStyleRenderer.GetPartSize(g, ThemeSizeType.True)); } ////// Returns the size of a top pointing thumb. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static Size GetBottomPointingThumbSize(Graphics g, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbBottom.Normal, (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. //------------------------------------------------------------------------------ ///// Returns the size of a bottom pointing thumb. /// ///// 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; ////// /// public sealed class TrackBarRenderer { //Make this per-thread, so that different threads can safely use these methods. [ThreadStatic] private static VisualStyleRenderer visualStyleRenderer = null; const int lineWidth = 2; //cannot instantiate private TrackBarRenderer() { } ////// This is a rendering class for the TrackBar control. /// ////// /// public static bool IsSupported { get { return VisualStyleRenderer.IsSupported; // no downlevel support } } ////// Returns true if this class is supported for the current OS and user/application settings, /// otherwise returns false. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawHorizontalTrack(Graphics g, Rectangle bounds) { InitializeRenderer(VisualStyleElement.TrackBar.Track.Normal, 1); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a horizontal track. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawVerticalTrack(Graphics g, Rectangle bounds) { InitializeRenderer(VisualStyleElement.TrackBar.TrackVertical.Normal, 1); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a vertical track. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawHorizontalThumb(Graphics g, Rectangle bounds, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.Thumb.Normal, (int)state); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a horizontal thumb. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawVerticalThumb(Graphics g, Rectangle bounds, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbVertical.Normal, (int)state); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a vertical thumb. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawLeftPointingThumb(Graphics g, Rectangle bounds, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbLeft.Normal, (int)state); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a constant size left pointing thumb centered in the given bounds. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawRightPointingThumb(Graphics g, Rectangle bounds, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbRight.Normal, (int)state); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a constant size right pointing thumb centered in the given bounds. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawTopPointingThumb(Graphics g, Rectangle bounds, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbTop.Normal, (int)state); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a constant size top pointing thumb centered in the given bounds. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawBottomPointingThumb(Graphics g, Rectangle bounds, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbBottom.Normal, (int)state); visualStyleRenderer.DrawBackground(g, bounds); } ////// Renders a constant size bottom pointing thumb centered in the given bounds. /// ////// /// [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")] // PM team has reviewed and decided on naming changes already [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawHorizontalTicks(Graphics g, Rectangle bounds, int numTicks, EdgeStyle edgeStyle) { if (numTicks <= 0 || bounds.Height <= 0 || bounds.Width <= 0 || g == null) { return; } InitializeRenderer(VisualStyleElement.TrackBar.Ticks.Normal, 1); //trivial case -- avoid calcs if (numTicks == 1) { visualStyleRenderer.DrawEdge(g, new Rectangle(bounds.X, bounds.Y, lineWidth, bounds.Height), Edges.Left, edgeStyle, EdgeEffects.None); return; } float inc = ((float)bounds.Width - lineWidth) / ((float)numTicks - 1); while (numTicks > 0) { //draw the nth tick float x = bounds.X + ((float)(numTicks - 1)) * inc; visualStyleRenderer.DrawEdge(g, new Rectangle((int)Math.Round(x), bounds.Y, lineWidth, bounds.Height), Edges.Left, edgeStyle, EdgeEffects.None); numTicks--; } } ////// Renders a horizontal tick. /// ////// /// [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")] // PM team has reviewed and decided on naming changes already [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static void DrawVerticalTicks(Graphics g, Rectangle bounds, int numTicks, EdgeStyle edgeStyle) { if (numTicks<=0 || bounds.Height <= 0 || bounds.Width<=0 || g == null ) { return; } InitializeRenderer(VisualStyleElement.TrackBar.TicksVertical.Normal, 1); //trivial case if (numTicks == 1) { visualStyleRenderer.DrawEdge(g, new Rectangle(bounds.X, bounds.Y, bounds.Width, lineWidth), Edges.Top, edgeStyle, EdgeEffects.None); return; } float inc = ((float)bounds.Height - lineWidth) / ((float)numTicks - 1); while (numTicks > 0) { //draw the nth tick float y = bounds.Y + ((float)(numTicks - 1)) * inc; visualStyleRenderer.DrawEdge(g, new Rectangle(bounds.X, (int)Math.Round(y), bounds.Width, lineWidth), Edges.Top, edgeStyle, EdgeEffects.None); numTicks--; } } ////// Renders a vertical tick. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static Size GetLeftPointingThumbSize(Graphics g, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbLeft.Normal, (int)state); return (visualStyleRenderer.GetPartSize(g, ThemeSizeType.True)); } ////// Returns the size of a left pointing thumb. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static Size GetRightPointingThumbSize(Graphics g, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbRight.Normal, (int)state); return (visualStyleRenderer.GetPartSize(g, ThemeSizeType.True)); } ////// Returns the size of a right pointing thumb. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static Size GetTopPointingThumbSize(Graphics g, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbTop.Normal, (int)state); return (visualStyleRenderer.GetPartSize(g, ThemeSizeType.True)); } ////// Returns the size of a top pointing thumb. /// ////// /// [SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters")] // Using Graphics instead of IDeviceContext intentionally public static Size GetBottomPointingThumbSize(Graphics g, TrackBarThumbState state) { InitializeRenderer(VisualStyleElement.TrackBar.ThumbBottom.Normal, (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./// Returns the size of a bottom pointing thumb. /// ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ProtectedConfigurationSection.cs
- XmlTextReader.cs
- DataGridViewColumnCollectionEditor.cs
- Form.cs
- TransformCollection.cs
- DetailsViewRowCollection.cs
- DataGridDesigner.cs
- AuthenticationConfig.cs
- DataBoundControl.cs
- Int32Converter.cs
- ListViewHitTestInfo.cs
- ConstructorExpr.cs
- XmlSchemaInferenceException.cs
- CheckBoxRenderer.cs
- WebServiceHost.cs
- FullTextState.cs
- TemplateKey.cs
- WebControlAdapter.cs
- GridViewColumnHeaderAutomationPeer.cs
- DateTimeAutomationPeer.cs
- QueryHandler.cs
- AssociationTypeEmitter.cs
- PathGradientBrush.cs
- ProgressBar.cs
- RectangleHotSpot.cs
- BehaviorEditorPart.cs
- AutoGeneratedFieldProperties.cs
- ToolStripTemplateNode.cs
- TimerElapsedEvenArgs.cs
- HttpApplication.cs
- SafeEventLogWriteHandle.cs
- DefaultValidator.cs
- PathFigureCollectionConverter.cs
- EpmContentSerializer.cs
- CaseInsensitiveOrdinalStringComparer.cs
- StringReader.cs
- XmlDataImplementation.cs
- ParameterEditorUserControl.cs
- BufferedStream2.cs
- TemplateBindingExpressionConverter.cs
- TabRenderer.cs
- SizeF.cs
- TextDecorationCollection.cs
- MetadataArtifactLoaderResource.cs
- SafeEventLogWriteHandle.cs
- ReversePositionQuery.cs
- RegexRunner.cs
- Label.cs
- FolderLevelBuildProvider.cs
- EventData.cs
- DeobfuscatingStream.cs
- xdrvalidator.cs
- CursorConverter.cs
- ObjectDataSourceStatusEventArgs.cs
- securestring.cs
- Reference.cs
- DataGridItem.cs
- ResourceIDHelper.cs
- ValueType.cs
- WebServiceTypeData.cs
- WebPartVerb.cs
- SemanticKeyElement.cs
- FixedDSBuilder.cs
- ActionItem.cs
- UserControl.cs
- CharEntityEncoderFallback.cs
- TextEvent.cs
- UnionCodeGroup.cs
- ConfigurationValidatorBase.cs
- PassportAuthentication.cs
- TextRange.cs
- ApplicationContext.cs
- BitmapFrame.cs
- AuthenticationModuleElementCollection.cs
- ObfuscateAssemblyAttribute.cs
- CancelRequestedRecord.cs
- HttpModulesInstallComponent.cs
- DocumentSequence.cs
- KerberosSecurityTokenAuthenticator.cs
- XPathBuilder.cs
- TraceUtility.cs
- fixedPageContentExtractor.cs
- WebServiceEnumData.cs
- ReadWriteObjectLock.cs
- PropertyMappingExceptionEventArgs.cs
- IERequestCache.cs
- TreeViewCancelEvent.cs
- __ComObject.cs
- EventsTab.cs
- CodePageUtils.cs
- PreDigestedSignedInfo.cs
- DesignerAttribute.cs
- WindowsScrollBarBits.cs
- ControlCollection.cs
- FormViewModeEventArgs.cs
- PropertyCondition.cs
- FontCacheLogic.cs
- PreservationFileWriter.cs
- XmlChildNodes.cs
- RelationshipEntry.cs