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;
///
///
///
/// This class provides API for drawing GDI text.
///
///
public sealed class TextRenderer
{
//cannot instantiate
private TextRenderer()
{
}
///
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
- BufferedOutputStream.cs
- DataContractSerializerOperationGenerator.cs
- RtfControls.cs
- BaseDataBoundControl.cs
- ConfigXmlCDataSection.cs
- RangeContentEnumerator.cs
- ContentFileHelper.cs
- ProgressBar.cs
- RSAPKCS1SignatureFormatter.cs
- WebPartDescriptionCollection.cs
- ConditionCollection.cs
- UserPreferenceChangingEventArgs.cs
- ValidatingReaderNodeData.cs
- RootAction.cs
- RangeBase.cs
- DebugView.cs
- ProfileProvider.cs
- basenumberconverter.cs
- Control.cs
- DataConnectionHelper.cs
- ScriptServiceAttribute.cs
- EntityParameter.cs
- RenderingBiasValidation.cs
- StaticContext.cs
- ParameterEditorUserControl.cs
- DesignTimeParseData.cs
- Journal.cs
- ParseNumbers.cs
- ListViewDataItem.cs
- GridView.cs
- EditingCoordinator.cs
- ParseChildrenAsPropertiesAttribute.cs
- SerialPinChanges.cs
- ComponentEditorForm.cs
- HtmlInputCheckBox.cs
- SmtpDateTime.cs
- SafeArrayRankMismatchException.cs
- ContextTokenTypeConverter.cs
- XmlAttributeCache.cs
- XmlHierarchicalDataSourceView.cs
- DataTableTypeConverter.cs
- MessageHeaderAttribute.cs
- WorkflowFormatterBehavior.cs
- CSharpCodeProvider.cs
- AutomationPeer.cs
- KeyValueConfigurationElement.cs
- BasicExpandProvider.cs
- MulticastOption.cs
- DiagnosticSection.cs
- BuiltInExpr.cs
- MonthCalendar.cs
- ContractMapping.cs
- SystemWebCachingSectionGroup.cs
- GridProviderWrapper.cs
- VisualStyleRenderer.cs
- OdbcDataAdapter.cs
- ProxyWebPartConnectionCollection.cs
- RuntimeConfigLKG.cs
- RadioButtonAutomationPeer.cs
- ExpressionList.cs
- DiagnosticsElement.cs
- EnumerableWrapperWeakToStrong.cs
- PagerSettings.cs
- XmlSchemaExternal.cs
- BaseParser.cs
- RtfFormatStack.cs
- PropagatorResult.cs
- StringUtil.cs
- RSAPKCS1SignatureDeformatter.cs
- IndexExpression.cs
- DelegateArgumentReference.cs
- DesignerActionUIService.cs
- FileStream.cs
- ColumnCollection.cs
- FlowDocumentPageViewerAutomationPeer.cs
- TextLine.cs
- DataGridViewComboBoxColumnDesigner.cs
- ListComponentEditorPage.cs
- GridViewDeleteEventArgs.cs
- HierarchicalDataBoundControl.cs
- followingquery.cs
- PngBitmapDecoder.cs
- ColorInterpolationModeValidation.cs
- AsyncPostBackTrigger.cs
- SecurityTokenParameters.cs
- WebPartCancelEventArgs.cs
- HttpWriter.cs
- MULTI_QI.cs
- LZCodec.cs
- FormViewInsertEventArgs.cs
- RefreshEventArgs.cs
- BuildProviderCollection.cs
- SqlSupersetValidator.cs
- MasterPage.cs
- VBCodeProvider.cs
- ObjectContextServiceProvider.cs
- EncryptedXml.cs
- Root.cs
- OleDbConnection.cs
- DataGridState.cs