Code:
/ DotNET / DotNET / 8.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
- SamlAuthorizationDecisionClaimResource.cs
- EmptyQuery.cs
- BamlRecordHelper.cs
- ConnectionManagementElementCollection.cs
- ScaleTransform3D.cs
- GenerateScriptTypeAttribute.cs
- AncestorChangedEventArgs.cs
- FloatUtil.cs
- FileInfo.cs
- ContextMenu.cs
- ArraySortHelper.cs
- NativeCppClassAttribute.cs
- StringTraceRecord.cs
- LocalizabilityAttribute.cs
- ZipPackagePart.cs
- StreamGeometryContext.cs
- StrokeCollection.cs
- Visual3D.cs
- ExpressionPrefixAttribute.cs
- ContextMenu.cs
- DefaultClaimSet.cs
- TransformPattern.cs
- Attributes.cs
- XmlSerializationWriter.cs
- IBuiltInEvidence.cs
- DragDrop.cs
- AdjustableArrowCap.cs
- GiveFeedbackEventArgs.cs
- WebConfigurationManager.cs
- PixelShader.cs
- HttpHandlerAction.cs
- ActivatedMessageQueue.cs
- SecurityCriticalDataForSet.cs
- ClientOptions.cs
- PointAnimationUsingKeyFrames.cs
- XhtmlBasicPageAdapter.cs
- OperationCanceledException.cs
- XmlAutoDetectWriter.cs
- PolyQuadraticBezierSegment.cs
- CapabilitiesSection.cs
- FullTextState.cs
- JulianCalendar.cs
- nulltextnavigator.cs
- ServicePointManagerElement.cs
- WebPartExportVerb.cs
- StylusEventArgs.cs
- ParagraphVisual.cs
- SafeSecurityHandles.cs
- DataServiceSaveChangesEventArgs.cs
- HtmlInputPassword.cs
- IsolatedStorageFileStream.cs
- IssuerInformation.cs
- CatchDesigner.xaml.cs
- AccessDataSource.cs
- PageContentCollection.cs
- SafeCryptoHandles.cs
- AnnouncementClient.cs
- BufferedGraphicsContext.cs
- RuntimeArgumentHandle.cs
- WbemProvider.cs
- CssTextWriter.cs
- MetadataHelper.cs
- OptionalColumn.cs
- ObjectStateManager.cs
- RenderData.cs
- ListControlConvertEventArgs.cs
- SourceFileBuildProvider.cs
- DefaultTextStore.cs
- LassoHelper.cs
- OperatorExpressions.cs
- ConfigXmlElement.cs
- ReadOnlyPropertyMetadata.cs
- DataGridCell.cs
- GeometryValueSerializer.cs
- Stylus.cs
- AbandonedMutexException.cs
- TransformedBitmap.cs
- DataServicePagingProviderWrapper.cs
- XPathScanner.cs
- RuleRefElement.cs
- NamespaceQuery.cs
- OutputCacheSection.cs
- UserControlParser.cs
- DuplicateMessageDetector.cs
- CustomWebEventKey.cs
- RadioButton.cs
- FormsAuthentication.cs
- StreamUpdate.cs
- XmlWriterDelegator.cs
- ZeroOpNode.cs
- ConfigurationPropertyAttribute.cs
- MachineKeyConverter.cs
- ReachFixedPageSerializerAsync.cs
- GetWinFXPath.cs
- OdbcFactory.cs
- SqlEnums.cs
- XsltCompileContext.cs
- HighContrastHelper.cs
- RelationshipNavigation.cs
- CqlGenerator.cs