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
- ValueTypeFieldReference.cs
- SqlDataSourceEnumerator.cs
- TemplateApplicationHelper.cs
- QueryResult.cs
- objectquery_tresulttype.cs
- TextOnlyOutput.cs
- ProfileSettingsCollection.cs
- TemplateControlCodeDomTreeGenerator.cs
- NegotiationTokenAuthenticatorState.cs
- assemblycache.cs
- PropertyMap.cs
- OAVariantLib.cs
- NavigationProperty.cs
- MachineKeyConverter.cs
- XmlValidatingReader.cs
- TdsParserHelperClasses.cs
- InternalConfigEventArgs.cs
- graph.cs
- LocatorManager.cs
- ClearTypeHintValidation.cs
- MimePart.cs
- TypedTableHandler.cs
- UserControl.cs
- CreatingCookieEventArgs.cs
- DetailsViewDeletedEventArgs.cs
- OdbcException.cs
- MetadataCache.cs
- UnrecognizedPolicyAssertionElement.cs
- Help.cs
- TemplateInstanceAttribute.cs
- ProviderCommandInfoUtils.cs
- SerialStream.cs
- AnnotationService.cs
- IListConverters.cs
- HandlerBase.cs
- ImageMapEventArgs.cs
- ISAPIWorkerRequest.cs
- TemplateContent.cs
- RequestCacheManager.cs
- OpacityConverter.cs
- ReliableChannelBinder.cs
- XmlEntity.cs
- ArgumentDesigner.xaml.cs
- ToolStripDropTargetManager.cs
- WindowsAuthenticationModule.cs
- FloatUtil.cs
- AppDomainUnloadedException.cs
- ObjectConverter.cs
- SQLByte.cs
- OdbcReferenceCollection.cs
- ReadOnlyDictionary.cs
- HttpCapabilitiesSectionHandler.cs
- BeginCreateSecurityTokenRequest.cs
- NavigatingCancelEventArgs.cs
- ConfigXmlText.cs
- _HTTPDateParse.cs
- CodePrimitiveExpression.cs
- XmlSchemaSimpleTypeUnion.cs
- SystemBrushes.cs
- Zone.cs
- MimeTypeAttribute.cs
- _AutoWebProxyScriptHelper.cs
- NullableDecimalMinMaxAggregationOperator.cs
- TypedLocationWrapper.cs
- ReflectTypeDescriptionProvider.cs
- Events.cs
- Compensate.cs
- MLangCodePageEncoding.cs
- PropertySourceInfo.cs
- XhtmlMobileTextWriter.cs
- ExpressionWriter.cs
- Transform.cs
- CustomAttributeBuilder.cs
- Ray3DHitTestResult.cs
- contentDescriptor.cs
- DnsPermission.cs
- AssociatedControlConverter.cs
- PreviewPrintController.cs
- CornerRadiusConverter.cs
- ColorKeyFrameCollection.cs
- HttpMethodConstraint.cs
- FloaterBaseParaClient.cs
- PrefixQName.cs
- MetadataItemEmitter.cs
- Int32Animation.cs
- ScrollData.cs
- ErrorEventArgs.cs
- QueryRewriter.cs
- DataControlCommands.cs
- NamespaceList.cs
- HtmlHead.cs
- AsmxEndpointPickerExtension.cs
- LinkLabel.cs
- InkCanvasFeedbackAdorner.cs
- FaultCode.cs
- X509CertificateStore.cs
- GridViewDeletedEventArgs.cs
- GacUtil.cs
- TranslateTransform3D.cs
- SharedPersonalizationStateInfo.cs