Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / TextBoxRenderer.cs / 1 / 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. g.FillRectangle(new SolidBrush(SystemColors.Window), 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. // Copyright (c) Microsoft Corporation. All rights reserved./// Renders a TextBox control. /// ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ListChangedEventArgs.cs
- ClientOptions.cs
- Splitter.cs
- MachineKeyConverter.cs
- TimeZoneInfo.cs
- ApplicationSettingsBase.cs
- Clipboard.cs
- tooltip.cs
- CustomWebEventKey.cs
- TripleDESCryptoServiceProvider.cs
- Exception.cs
- DrawingCollection.cs
- InputEventArgs.cs
- BindingContext.cs
- Pair.cs
- MemoryPressure.cs
- SqlDataSourceCustomCommandEditor.cs
- SearchForVirtualItemEventArgs.cs
- CacheSection.cs
- TextReader.cs
- TableRowCollection.cs
- TableProviderWrapper.cs
- ListItemCollection.cs
- _BufferOffsetSize.cs
- ConnectionPoint.cs
- HwndHostAutomationPeer.cs
- Knowncolors.cs
- ConstNode.cs
- SmiContextFactory.cs
- CompositeControlDesigner.cs
- OleDbError.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- WebPartVerbCollection.cs
- StrongTypingException.cs
- SkinBuilder.cs
- SafePipeHandle.cs
- SectionVisual.cs
- RenamedEventArgs.cs
- WindowsGraphics.cs
- EntityConnectionStringBuilder.cs
- FileAuthorizationModule.cs
- MemoryRecordBuffer.cs
- AutomationElement.cs
- GlyphingCache.cs
- SizeKeyFrameCollection.cs
- StoreItemCollection.cs
- TypeNameHelper.cs
- DisposableCollectionWrapper.cs
- TypeHelpers.cs
- Stack.cs
- TabControlCancelEvent.cs
- Int32AnimationBase.cs
- DataGridCellsPanel.cs
- ValueChangedEventManager.cs
- BamlResourceContent.cs
- ToolStripRenderEventArgs.cs
- EmptyCollection.cs
- XsdDataContractImporter.cs
- OdbcStatementHandle.cs
- DateTimeConverter.cs
- XmlNamespaceMappingCollection.cs
- Compress.cs
- Int32KeyFrameCollection.cs
- StreamBodyWriter.cs
- AspNetSynchronizationContext.cs
- CacheForPrimitiveTypes.cs
- EmptyEnumerable.cs
- PlatformCulture.cs
- WebBrowserBase.cs
- SafeNativeMethods.cs
- CallTemplateAction.cs
- InProcStateClientManager.cs
- FormattedTextSymbols.cs
- FtpRequestCacheValidator.cs
- precedingquery.cs
- WindowsMenu.cs
- TranslateTransform.cs
- RelationshipFixer.cs
- iisPickupDirectory.cs
- odbcmetadatafactory.cs
- login.cs
- MethodImplAttribute.cs
- COAUTHINFO.cs
- ToolStripMenuItemDesigner.cs
- DataObjectSettingDataEventArgs.cs
- XmlSchemaAttributeGroup.cs
- TagMapInfo.cs
- ThreadWorkerController.cs
- CompressionTransform.cs
- DbProviderFactories.cs
- DesignBindingConverter.cs
- Int32CollectionConverter.cs
- SelectedDatesCollection.cs
- AssemblyCache.cs
- MdbDataFileEditor.cs
- dataSvcMapFileLoader.cs
- QilBinary.cs
- SourceChangedEventArgs.cs
- DataGridColumn.cs
- SmtpClient.cs