Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / TextBoxRenderer.cs / 1305376 / TextBoxRenderer.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.Internal; using System.Windows.Forms.VisualStyles; using Microsoft.Win32; ////// /// public sealed class TextBoxRenderer { //Make this per-thread, so that different threads can safely use these methods. [ThreadStatic] private static VisualStyleRenderer visualStyleRenderer = null; private static readonly VisualStyleElement TextBoxElement = VisualStyleElement.TextBox.TextEdit.Normal; //cannot instantiate private TextBoxRenderer() { } ////// This is a rendering class for the TextBox control. /// ////// /// public static bool IsSupported { get { return VisualStyleRenderer.IsSupported; // no downlevel support } } private static void DrawBackground(Graphics g, Rectangle bounds, TextBoxState state) { visualStyleRenderer.DrawBackground(g, bounds); if (state != TextBoxState.Disabled) { Color windowColor = visualStyleRenderer.GetColor(ColorProperty.FillColor); if (windowColor != SystemColors.Window) { Rectangle fillRect = visualStyleRenderer.GetBackgroundContentRectangle(g, bounds); //then we need to re-fill the background. using(SolidBrush brush = new SolidBrush(SystemColors.Window)) { g.FillRectangle(brush, fillRect); } } } } ////// 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 DrawTextBox(Graphics g, Rectangle bounds, TextBoxState state) { InitializeRenderer((int)state); DrawBackground(g, bounds, state); } ////// Renders a TextBox control. /// ////// /// public static void DrawTextBox(Graphics g, Rectangle bounds, string textBoxText, Font font, TextBoxState state) { DrawTextBox(g, bounds, textBoxText, font, TextFormatFlags.TextBoxControl, state); } ////// Renders a TextBox control. /// ////// /// public static void DrawTextBox(Graphics g, Rectangle bounds, string textBoxText, Font font, Rectangle textBounds, TextBoxState state) { DrawTextBox(g, bounds, textBoxText, font, textBounds, TextFormatFlags.TextBoxControl, state); } ////// Renders a TextBox control. /// ////// /// public static void DrawTextBox(Graphics g, Rectangle bounds, string textBoxText, Font font, TextFormatFlags flags, TextBoxState state) { InitializeRenderer((int)state); Rectangle textBounds = visualStyleRenderer.GetBackgroundContentRectangle(g, bounds); textBounds.Inflate(-2, -2); DrawTextBox(g, bounds, textBoxText, font, textBounds, flags, state); } ////// Renders a TextBox control. /// ////// /// [ SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters") // Using Graphics instead of IDeviceContext intentionally ] public static void DrawTextBox(Graphics g, Rectangle bounds, string textBoxText, Font font, Rectangle textBounds, TextFormatFlags flags, TextBoxState state) { InitializeRenderer((int)state); DrawBackground(g, bounds, state); Color textColor = visualStyleRenderer.GetColor(ColorProperty.TextColor); TextRenderer.DrawText(g, textBoxText, font, textBounds, textColor, flags); } private static void InitializeRenderer(int state) { if (visualStyleRenderer == null) { visualStyleRenderer = new VisualStyleRenderer(TextBoxElement.ClassName, TextBoxElement.Part, state); } else { visualStyleRenderer.SetParameters(TextBoxElement.ClassName, TextBoxElement.Part, state); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007./// Renders a TextBox control. /// ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SmtpFailedRecipientsException.cs
- StickyNoteHelper.cs
- InputReportEventArgs.cs
- MLangCodePageEncoding.cs
- IisTraceWebEventProvider.cs
- NameSpaceExtractor.cs
- ColorBlend.cs
- SmtpClient.cs
- Operator.cs
- SqlDataSourceCommandEventArgs.cs
- FieldNameLookup.cs
- XPathNode.cs
- ExpandCollapsePattern.cs
- SourceElementsCollection.cs
- LocalValueEnumerator.cs
- DropShadowBitmapEffect.cs
- querybuilder.cs
- CallContext.cs
- WorkerRequest.cs
- HitTestDrawingContextWalker.cs
- CompilationLock.cs
- XmlToDatasetMap.cs
- Adorner.cs
- OleDbEnumerator.cs
- RegexParser.cs
- XomlCompiler.cs
- RenderDataDrawingContext.cs
- StringInfo.cs
- RecordConverter.cs
- PatternMatcher.cs
- ScrollBarAutomationPeer.cs
- FontWeight.cs
- RowToFieldTransformer.cs
- ScriptReferenceEventArgs.cs
- ToolStripButton.cs
- WebPartManager.cs
- WindowsSlider.cs
- IndicCharClassifier.cs
- initElementDictionary.cs
- DecimalAnimationUsingKeyFrames.cs
- Base64Stream.cs
- SqlReferenceCollection.cs
- UriTemplateEquivalenceComparer.cs
- WebErrorHandler.cs
- URLAttribute.cs
- MethodBody.cs
- DebugView.cs
- AuthenticationSection.cs
- SqlStream.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- KnownBoxes.cs
- BitmapFrameEncode.cs
- SymbolMethod.cs
- MarshalByValueComponent.cs
- RuntimeArgumentHandle.cs
- MessageBuffer.cs
- ObjectTag.cs
- CreatingCookieEventArgs.cs
- DockingAttribute.cs
- TreeViewAutomationPeer.cs
- AssociationSet.cs
- ReferenceEqualityComparer.cs
- DbProviderFactoriesConfigurationHandler.cs
- Converter.cs
- ObjectViewListener.cs
- ChildrenQuery.cs
- PhoneCall.cs
- IisTraceWebEventProvider.cs
- TextServicesManager.cs
- CompositeCollectionView.cs
- HelpKeywordAttribute.cs
- UrlPropertyAttribute.cs
- ConnectivityStatus.cs
- Utilities.cs
- CategoryNameCollection.cs
- FlowLayout.cs
- DbConnectionInternal.cs
- SoundPlayerAction.cs
- DSASignatureDeformatter.cs
- DelegateOutArgument.cs
- DiagnosticsConfigurationHandler.cs
- FrameworkElement.cs
- SerializationHelper.cs
- NullableFloatMinMaxAggregationOperator.cs
- SizeConverter.cs
- SimpleType.cs
- ConnectionManagementSection.cs
- BidPrivateBase.cs
- PersonalizationAdministration.cs
- CompModSwitches.cs
- iisPickupDirectory.cs
- OverrideMode.cs
- Itemizer.cs
- WebPartConnectionsEventArgs.cs
- Maps.cs
- MDIControlStrip.cs
- RecognitionResult.cs
- OutputCacheSection.cs
- xmlglyphRunInfo.cs
- SelectionManager.cs