Code:
/ 4.0 / 4.0 / 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. /// ///// 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
- ComNativeDescriptor.cs
- sapiproxy.cs
- GPRECTF.cs
- DropShadowBitmapEffect.cs
- HtmlTableRowCollection.cs
- SectionUpdates.cs
- CodeAttributeDeclarationCollection.cs
- DynamicArgumentDesigner.xaml.cs
- GridViewColumnCollection.cs
- KeysConverter.cs
- SQLMembershipProvider.cs
- ViewStateModeByIdAttribute.cs
- DataServiceContext.cs
- _LoggingObject.cs
- WebPartDisplayModeEventArgs.cs
- FixedFindEngine.cs
- Matrix.cs
- HandlerWithFactory.cs
- TreeNodeMouseHoverEvent.cs
- NetDataContractSerializer.cs
- SchemaSetCompiler.cs
- NativeWindow.cs
- PowerStatus.cs
- WorkflowQueueInfo.cs
- IsolatedStorage.cs
- DataGridComboBoxColumn.cs
- ButtonChrome.cs
- WhitespaceRuleReader.cs
- Dynamic.cs
- ConfigurationSectionGroup.cs
- UInt32.cs
- IFlowDocumentViewer.cs
- CompositeControl.cs
- MouseDevice.cs
- DesignerTextWriter.cs
- ColumnReorderedEventArgs.cs
- LassoHelper.cs
- DataSvcMapFileSerializer.cs
- DataError.cs
- ListSortDescriptionCollection.cs
- Int64Storage.cs
- HttpDebugHandler.cs
- GradientStopCollection.cs
- WindowsFormsHost.cs
- PrivateFontCollection.cs
- ValueSerializerAttribute.cs
- DeviceFiltersSection.cs
- TrackBar.cs
- TextOutput.cs
- DropSource.cs
- DataServiceConfiguration.cs
- MatrixTransform3D.cs
- FixedSOMLineRanges.cs
- EncodedStreamFactory.cs
- X509RecipientCertificateClientElement.cs
- RouteValueDictionary.cs
- UIElement3D.cs
- RadioButtonList.cs
- DataObject.cs
- ServerValidateEventArgs.cs
- PieceDirectory.cs
- WebSysDescriptionAttribute.cs
- EtwTrace.cs
- PixelFormatConverter.cs
- CalendarDay.cs
- SimpleTypeResolver.cs
- FrameworkElementFactoryMarkupObject.cs
- SynchronizingStream.cs
- SortAction.cs
- XmlLinkedNode.cs
- XmlSchemaAttributeGroupRef.cs
- CultureInfo.cs
- RoleGroup.cs
- Gdiplus.cs
- SqlTypesSchemaImporter.cs
- SmiEventSink_DeferedProcessing.cs
- SchemaDeclBase.cs
- WmlCalendarAdapter.cs
- LinearGradientBrush.cs
- JsonByteArrayDataContract.cs
- ECDsaCng.cs
- ProcessHostMapPath.cs
- SQLBinaryStorage.cs
- RichTextBoxDesigner.cs
- SoundPlayerAction.cs
- InternalBase.cs
- MatchAttribute.cs
- DataColumnChangeEvent.cs
- StoreItemCollection.Loader.cs
- PropertyCollection.cs
- HostAdapter.cs
- SendActivityDesignerTheme.cs
- ExceptionRoutedEventArgs.cs
- LiteralDesigner.cs
- TopClause.cs
- WebScriptEnablingBehavior.cs
- WebMessageEncodingBindingElement.cs
- ConnectionProviderAttribute.cs
- Timeline.cs
- ZoomPercentageConverter.cs