Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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. //------------------------------------------------------------------------------ ///// 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. 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./// Renders a TextBox control. /// ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ToolBarButtonClickEvent.cs
- QueryCacheEntry.cs
- DefaultDialogButtons.cs
- StreamReader.cs
- XmlAnyAttributeAttribute.cs
- DependencyPropertyHelper.cs
- ProgressBarHighlightConverter.cs
- SwitchLevelAttribute.cs
- TypeBrowser.xaml.cs
- ECDiffieHellmanCng.cs
- ChainedAsyncResult.cs
- DataServiceHost.cs
- RawStylusSystemGestureInputReport.cs
- BrowserDefinitionCollection.cs
- CompareInfo.cs
- WhileDesigner.cs
- ObjectListShowCommandsEventArgs.cs
- GenericUriParser.cs
- EnumDataContract.cs
- SoapExtension.cs
- WaitForChangedResult.cs
- DataGridCell.cs
- ProfileService.cs
- Stack.cs
- PersonalizablePropertyEntry.cs
- SortableBindingList.cs
- StorageEntitySetMapping.cs
- __Filters.cs
- KoreanCalendar.cs
- ComboBoxItem.cs
- ProcessThreadDesigner.cs
- InternalUserCancelledException.cs
- IdentityValidationException.cs
- RegexRunner.cs
- FileSystemInfo.cs
- ACL.cs
- ValueChangedEventManager.cs
- ImageUrlEditor.cs
- _ListenerRequestStream.cs
- LogicalExpressionEditor.cs
- FixedSOMTable.cs
- CodeSnippetStatement.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- XsdBuilder.cs
- WebPartVerb.cs
- ContainerUtilities.cs
- PropertyGrid.cs
- XsltConvert.cs
- DefaultTextStoreTextComposition.cs
- RouteItem.cs
- MiniMapControl.xaml.cs
- ComponentManagerBroker.cs
- Bookmark.cs
- DataSourceCacheDurationConverter.cs
- TrackingMemoryStream.cs
- XmlCDATASection.cs
- SpeechRecognitionEngine.cs
- ByteAnimationBase.cs
- PolicyManager.cs
- CutCopyPasteHelper.cs
- MSAAWinEventWrap.cs
- SizeAnimation.cs
- CapiSymmetricAlgorithm.cs
- WSDualHttpBinding.cs
- SafeSecurityHandles.cs
- DataGridViewTextBoxEditingControl.cs
- FtpRequestCacheValidator.cs
- FragmentQuery.cs
- WinInet.cs
- WebPartVerbsEventArgs.cs
- ProfileManager.cs
- EdmFunction.cs
- DependencyPropertyDescriptor.cs
- PerformanceCountersElement.cs
- Zone.cs
- WebPartConnectVerb.cs
- LogicalTreeHelper.cs
- AnnotationMap.cs
- LocalizableResourceBuilder.cs
- SafeHGlobalHandleCritical.cs
- TreeViewDesigner.cs
- IndentedWriter.cs
- PageScaling.cs
- DataTable.cs
- Page.cs
- ExpressionBindingCollection.cs
- CreateUserErrorEventArgs.cs
- CodeStatementCollection.cs
- CompilerInfo.cs
- LogicalTreeHelper.cs
- LayoutEngine.cs
- Addressing.cs
- SharedPerformanceCounter.cs
- Parallel.cs
- CollectionContainer.cs
- HttpTransportSecurityElement.cs
- HttpHeaderCollection.cs
- Mapping.cs
- RuleRef.cs
- PasswordRecovery.cs