Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / GDI / TextRenderer.cs / 1305376 / TextRenderer.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System.Internal; using System; using System.Drawing; using System.Windows.Forms.Internal; using System.Diagnostics; ////// /// public sealed class TextRenderer { //cannot instantiate private TextRenderer() { } ////// This class provides API for drawing GDI text. /// ///public static void DrawText(IDeviceContext dc, string text, Font font, Point pt, Color foreColor) { if (dc == null) { throw new ArgumentNullException("dc"); } WindowsFontQuality fontQuality = WindowsFont.WindowsFontQualityFromTextRenderingHint(dc as Graphics); IntPtr hdc = dc.GetHdc(); try { using( WindowsGraphics wg = WindowsGraphics.FromHdc( hdc )) { using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont(font, fontQuality)) { wg.DrawText(text, wf, pt, foreColor); } } } finally { dc.ReleaseHdc(); } } /// public static void DrawText(IDeviceContext dc, string text, Font font, Point pt, Color foreColor, Color backColor) { if (dc == null) { throw new ArgumentNullException("dc"); } WindowsFontQuality fontQuality = WindowsFont.WindowsFontQualityFromTextRenderingHint(dc as Graphics); IntPtr hdc = dc.GetHdc(); try { using( WindowsGraphics wg = WindowsGraphics.FromHdc( hdc )) { using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont(font, fontQuality)) { wg.DrawText(text, wf, pt, foreColor, backColor); } } } finally { dc.ReleaseHdc(); } } /// public static void DrawText(IDeviceContext dc, string text, Font font, Point pt, Color foreColor, TextFormatFlags flags) { if (dc == null) { throw new ArgumentNullException("dc"); } WindowsFontQuality fontQuality = WindowsFont.WindowsFontQualityFromTextRenderingHint(dc as Graphics); using( WindowsGraphicsWrapper wgr = new WindowsGraphicsWrapper( dc, flags )) { using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont(font, fontQuality)) { wgr.WindowsGraphics.DrawText(text, wf, pt, foreColor, GetIntTextFormatFlags(flags)); } } } /// public static void DrawText(IDeviceContext dc, string text, Font font, Point pt, Color foreColor, Color backColor, TextFormatFlags flags) { if (dc == null) { throw new ArgumentNullException("dc"); } WindowsFontQuality fontQuality = WindowsFont.WindowsFontQualityFromTextRenderingHint(dc as Graphics); using( WindowsGraphicsWrapper wgr = new WindowsGraphicsWrapper( dc, flags )) { using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont(font, fontQuality)) { wgr.WindowsGraphics.DrawText(text, wf, pt, foreColor, backColor, GetIntTextFormatFlags(flags)); } } } /// public static void DrawText(IDeviceContext dc, string text, Font font, Rectangle bounds, Color foreColor) { if (dc == null) { throw new ArgumentNullException("dc"); } WindowsFontQuality fontQuality = WindowsFont.WindowsFontQualityFromTextRenderingHint(dc as Graphics); IntPtr hdc = dc.GetHdc(); try { using( WindowsGraphics wg = WindowsGraphics.FromHdc( hdc )) { using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont(font, fontQuality)) { wg.DrawText(text, wf, bounds, foreColor); } } } finally { dc.ReleaseHdc(); } } /// public static void DrawText(IDeviceContext dc, string text, Font font, Rectangle bounds, Color foreColor, Color backColor) { if (dc == null) { throw new ArgumentNullException("dc"); } WindowsFontQuality fontQuality = WindowsFont.WindowsFontQualityFromTextRenderingHint(dc as Graphics); IntPtr hdc = dc.GetHdc(); try { using( WindowsGraphics wg = WindowsGraphics.FromHdc( hdc )) { using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont(font, fontQuality)) { wg.DrawText(text, wf, bounds, foreColor, backColor); } } } finally { dc.ReleaseHdc(); } } /// public static void DrawText(IDeviceContext dc, string text, Font font, Rectangle bounds, Color foreColor, TextFormatFlags flags) { if (dc == null) { throw new ArgumentNullException("dc"); } WindowsFontQuality fontQuality = WindowsFont.WindowsFontQualityFromTextRenderingHint(dc as Graphics); using( WindowsGraphicsWrapper wgr = new WindowsGraphicsWrapper( dc, flags )) { using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont( font, fontQuality )) { wgr.WindowsGraphics.DrawText( text, wf, bounds, foreColor, GetIntTextFormatFlags( flags ) ); } } } /// public static void DrawText(IDeviceContext dc, string text, Font font, Rectangle bounds, Color foreColor, Color backColor, TextFormatFlags flags) { if (dc == null) { throw new ArgumentNullException("dc"); } WindowsFontQuality fontQuality = WindowsFont.WindowsFontQualityFromTextRenderingHint(dc as Graphics); using( WindowsGraphicsWrapper wgr = new WindowsGraphicsWrapper( dc, flags )) { using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont( font, fontQuality )) { wgr.WindowsGraphics.DrawText(text, wf, bounds, foreColor, backColor, GetIntTextFormatFlags(flags)); } } } private static IntTextFormatFlags GetIntTextFormatFlags(TextFormatFlags flags) { if( ((uint)flags & WindowsGraphics.GdiUnsupportedFlagMask) == 0 ) { return (IntTextFormatFlags) flags; } // Clear TextRenderer custom flags. IntTextFormatFlags windowsGraphicsSupportedFlags = (IntTextFormatFlags) ( ((uint)flags) & ~WindowsGraphics.GdiUnsupportedFlagMask ); return windowsGraphicsSupportedFlags; } /// MeasureText wrappers. public static Size MeasureText(string text, Font font ) { if (string.IsNullOrEmpty(text)) { return Size.Empty; } using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont(font)) { return WindowsGraphicsCacheManager.MeasurementGraphics.MeasureText(text, wf); } } public static Size MeasureText(string text, Font font, Size proposedSize ) { if (string.IsNullOrEmpty(text)) { return Size.Empty; } using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont(font)) { return WindowsGraphicsCacheManager.MeasurementGraphics.MeasureText(text, WindowsGraphicsCacheManager.GetWindowsFont(font), proposedSize); } } public static Size MeasureText(string text, Font font, Size proposedSize, TextFormatFlags flags ) { if (string.IsNullOrEmpty(text)) { return Size.Empty; } using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont(font)) { return WindowsGraphicsCacheManager.MeasurementGraphics.MeasureText(text, wf, proposedSize, GetIntTextFormatFlags(flags)); } } public static Size MeasureText(IDeviceContext dc, string text, Font font) { if (dc == null) { throw new ArgumentNullException("dc"); } if (string.IsNullOrEmpty(text)) { return Size.Empty; } WindowsFontQuality fontQuality = WindowsFont.WindowsFontQualityFromTextRenderingHint(dc as Graphics); IntPtr hdc = dc.GetHdc(); try { using( WindowsGraphics wg = WindowsGraphics.FromHdc( hdc )) { using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont(font, fontQuality)) { return wg.MeasureText(text, wf); } } } finally { dc.ReleaseHdc(); } } public static Size MeasureText(IDeviceContext dc, string text, Font font, Size proposedSize ) { if (dc == null) { throw new ArgumentNullException("dc"); } if (string.IsNullOrEmpty(text)) { return Size.Empty; } WindowsFontQuality fontQuality = WindowsFont.WindowsFontQualityFromTextRenderingHint(dc as Graphics); IntPtr hdc = dc.GetHdc(); try { using( WindowsGraphics wg = WindowsGraphics.FromHdc( hdc )) { using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont(font, fontQuality)) { return wg.MeasureText(text, wf, proposedSize); } } } finally { dc.ReleaseHdc(); } } public static Size MeasureText(IDeviceContext dc, string text, Font font, Size proposedSize, TextFormatFlags flags ) { if (dc == null) { throw new ArgumentNullException("dc"); } if (string.IsNullOrEmpty(text)) { return Size.Empty; } WindowsFontQuality fontQuality = WindowsFont.WindowsFontQualityFromTextRenderingHint(dc as Graphics); using (WindowsGraphicsWrapper wgr = new WindowsGraphicsWrapper(dc, flags)) { using (WindowsFont wf = WindowsGraphicsCacheManager.GetWindowsFont(font, fontQuality)) { return wgr.WindowsGraphics.MeasureText(text, wf, proposedSize, GetIntTextFormatFlags(flags)); } } } internal static Color DisabledTextColor(Color backColor) { //Theme specs -- if the backcolor is darker than Control, we use // ControlPaint.Dark(backcolor). Otherwise we use ControlDark. // see VS#357226 Color disabledTextForeColor = SystemColors.ControlDark; if (ControlPaint.IsDarker(backColor, SystemColors.Control)) { disabledTextForeColor = ControlPaint.Dark(backColor); } return disabledTextForeColor; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TextElementCollection.cs
- CommandField.cs
- ClientConfigurationSystem.cs
- KeyEvent.cs
- IEnumerable.cs
- ResourceDictionaryCollection.cs
- ActiveXContainer.cs
- CookieHandler.cs
- X509CertificateChain.cs
- httpserverutility.cs
- ImageMapEventArgs.cs
- ColumnResizeUndoUnit.cs
- ExtendedProtectionPolicy.cs
- HtmlElement.cs
- ScriptControlManager.cs
- SignatureDescription.cs
- QilStrConcat.cs
- AssociatedControlConverter.cs
- Evaluator.cs
- CodeBinaryOperatorExpression.cs
- ZeroOpNode.cs
- SqlDependency.cs
- WindowsFormsLinkLabel.cs
- PreviewPageInfo.cs
- WCFBuildProvider.cs
- DataGridRowHeader.cs
- ArrayConverter.cs
- ViewValidator.cs
- TransformedBitmap.cs
- ExpressionBinding.cs
- WhiteSpaceTrimStringConverter.cs
- NavigationEventArgs.cs
- Transform3DGroup.cs
- MappingModelBuildProvider.cs
- SchemaObjectWriter.cs
- List.cs
- TextBox.cs
- PropertyChange.cs
- WindowsGraphics.cs
- BitmapData.cs
- _LoggingObject.cs
- SQLDateTimeStorage.cs
- WebPartConnectionsCancelVerb.cs
- DefaultBindingPropertyAttribute.cs
- TextParagraph.cs
- TextContainerChangedEventArgs.cs
- MessageSecurityOverHttpElement.cs
- Facet.cs
- DelayedRegex.cs
- Currency.cs
- WebPartDescription.cs
- Pair.cs
- SystemGatewayIPAddressInformation.cs
- MenuTracker.cs
- SimpleMailWebEventProvider.cs
- DetailsViewPagerRow.cs
- SqlNamer.cs
- MULTI_QI.cs
- GeometryGroup.cs
- CompilerHelpers.cs
- FileVersionInfo.cs
- DrawingContextDrawingContextWalker.cs
- AssemblyResourceLoader.cs
- SystemFonts.cs
- AudioException.cs
- SafeRegistryHandle.cs
- XmlSerializableReader.cs
- ForAllOperator.cs
- LayoutDump.cs
- ConnectorMovedEventArgs.cs
- Debug.cs
- WCFBuildProvider.cs
- BevelBitmapEffect.cs
- FileDetails.cs
- PathFigureCollectionValueSerializer.cs
- UnsafeNativeMethods.cs
- LayoutTableCell.cs
- CaseInsensitiveHashCodeProvider.cs
- TimeZoneNotFoundException.cs
- smtpconnection.cs
- FillBehavior.cs
- PropertyNames.cs
- DesignerSerializationOptionsAttribute.cs
- TreeNodeConverter.cs
- PreservationFileReader.cs
- NativeRightsManagementAPIsStructures.cs
- StandardToolWindows.cs
- ColorKeyFrameCollection.cs
- ListBoxItem.cs
- TableLayout.cs
- MissingMemberException.cs
- ToolboxItem.cs
- ProgressBarBrushConverter.cs
- DocumentPageHost.cs
- EntityContainerRelationshipSet.cs
- CultureTable.cs
- OutputWindow.cs
- CharacterBuffer.cs
- BuilderInfo.cs
- AttachmentService.cs