Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / Drawing / System / Drawing / Design / FontNameEditor.cs / 1 / FontNameEditor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Drawing.Design { using Microsoft.Win32; using System; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Drawing; using System.IO; using System.Globalization; using System.Reflection; using System.Runtime.InteropServices; using System.Windows.Forms; using System.Windows.Forms.ComponentModel; using System.Windows.Forms.Design; ////// /// /// [System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.LinkDemand, Name="FullTrust")] [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)] [System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.InheritanceDemand, Name="FullTrust")] [System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.LinkDemand, Name="FullTrust")] public class FontNameEditor : UITypeEditor { ///Provides an editor that paints a glyph for the font name. ////// /// Determines if this editor supports the painting of a representation /// of an object's value. /// public override bool GetPaintValueSupported(ITypeDescriptorContext context) { return true; } ////// /// [SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers")] [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")] public override void PaintValue(PaintValueEventArgs e) { string fontName = e.Value as string; if (fontName != null) { if (fontName == "") { // don't draw anything if we don't have a value. return; } e.Graphics.FillRectangle(SystemBrushes.ActiveCaption, e.Bounds); FontFamily family = null; try { family = new FontFamily(fontName); } catch { // Ignore the exception if the fontName does not exist or is invalid... // we just won't render a preview of the font at all } if (family != null) { // Believe it or not, not all font families have a "normal" face. Try normal, then italic, // then bold, then bold italic, then give up. try { DrawFontSample(e, family, FontStyle.Regular); } catch { try { DrawFontSample(e, family, FontStyle.Italic); } catch { try { DrawFontSample(e, family, FontStyle.Bold); } catch { try { DrawFontSample(e, family, FontStyle.Bold | FontStyle.Italic); } catch { // No font style we can think of is supported } } } } } e.Graphics.DrawLine(SystemPens.WindowFrame, e.Bounds.Right, e.Bounds.Y, e.Bounds.Right, e.Bounds.Bottom); } } // Tries to render sample of text in specified font and style, // throwing exception if specified font does not support that style... // [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:DisposeObjectsBeforeLosingScope")] static private void DrawFontSample(PaintValueEventArgs e, FontFamily fontFamily, FontStyle fontStyle) { float fontSize = (float) (e.Bounds.Height / 1.2); Font font = new Font(fontFamily, fontSize, fontStyle, GraphicsUnit.Pixel); if (font == null) { return; } try { e.Graphics.DrawString("abcd", font, SystemBrushes.ActiveCaptionText, e.Bounds); } finally { font.Dispose(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved./// Paints a representative value of the given object to the provided /// canvas. Painting should be done within the boundaries of the /// provided rectangle. /// ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ISessionStateStore.cs
- LocalBuilder.cs
- Queue.cs
- Table.cs
- DBCSCodePageEncoding.cs
- HtmlGenericControl.cs
- PersistenceProviderFactory.cs
- GroupDescription.cs
- SqlRowUpdatedEvent.cs
- FeatureSupport.cs
- SHA1CryptoServiceProvider.cs
- InvalidOleVariantTypeException.cs
- XmlSequenceWriter.cs
- DataSourceView.cs
- XmlEnumAttribute.cs
- x509utils.cs
- HebrewNumber.cs
- ClientFormsAuthenticationCredentials.cs
- SimpleBitVector32.cs
- SecureEnvironment.cs
- IgnoreFlushAndCloseStream.cs
- TextBounds.cs
- HealthMonitoringSectionHelper.cs
- TemplateInstanceAttribute.cs
- Logging.cs
- SqlXml.cs
- TransformGroup.cs
- QueueException.cs
- Schema.cs
- TypographyProperties.cs
- XmlSchemaNotation.cs
- Signature.cs
- CodeGenerator.cs
- QilParameter.cs
- Rotation3DKeyFrameCollection.cs
- EdmValidator.cs
- PrimitiveSchema.cs
- DisplayNameAttribute.cs
- Domain.cs
- SuppressMessageAttribute.cs
- TypeGeneratedEventArgs.cs
- AnonymousIdentificationSection.cs
- UInt32Converter.cs
- DynamicResourceExtension.cs
- X500Name.cs
- DataGridViewImageCell.cs
- ConfigurationSchemaErrors.cs
- TouchesOverProperty.cs
- WindowPatternIdentifiers.cs
- InstancePersistence.cs
- Opcode.cs
- SpnegoTokenAuthenticator.cs
- ObjectDataSourceStatusEventArgs.cs
- CompilerGlobalScopeAttribute.cs
- XmlKeywords.cs
- PropertyPushdownHelper.cs
- SourceElementsCollection.cs
- FixedTextPointer.cs
- EditorAttribute.cs
- SqlMethodTransformer.cs
- WebEncodingValidator.cs
- PropertyTab.cs
- oledbmetadatacollectionnames.cs
- Vector.cs
- XmlIlTypeHelper.cs
- SqlDataSourceCommandEventArgs.cs
- PageParserFilter.cs
- GridViewRow.cs
- SqlBooleanMismatchVisitor.cs
- ColumnMapCopier.cs
- BitmapVisualManager.cs
- ChtmlFormAdapter.cs
- ObjectListField.cs
- ReflectPropertyDescriptor.cs
- ConfigXmlText.cs
- GlyphTypeface.cs
- XmlSchemaRedefine.cs
- SoapFault.cs
- TreePrinter.cs
- TypeUnloadedException.cs
- SerializationIncompleteException.cs
- Qualifier.cs
- DbTransaction.cs
- SqlServer2KCompatibilityAnnotation.cs
- TextTreePropertyUndoUnit.cs
- DesignerActionUIService.cs
- DiscoveryClientReferences.cs
- BinHexEncoder.cs
- ServiceModelActivity.cs
- codemethodreferenceexpression.cs
- BaseTemplateBuildProvider.cs
- ToolStripPanel.cs
- Variant.cs
- XmlSchemaAnnotated.cs
- LineProperties.cs
- ObservableDictionary.cs
- TlsSspiNegotiation.cs
- InvalidComObjectException.cs
- SafeViewOfFileHandle.cs
- SoapDocumentMethodAttribute.cs