Code:
/ DotNET / DotNET / 8.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
- OleDbRowUpdatedEvent.cs
- StringFreezingAttribute.cs
- UnitySerializationHolder.cs
- BitmapEffectDrawingContextState.cs
- MessageSmuggler.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- GradientStopCollection.cs
- ConfigurationSectionCollection.cs
- DesignerObject.cs
- Propagator.Evaluator.cs
- ManageRequest.cs
- TreeNodeBinding.cs
- PageMediaType.cs
- IconBitmapDecoder.cs
- TimerElapsedEvenArgs.cs
- Camera.cs
- DataPagerField.cs
- UrlPropertyAttribute.cs
- IsolatedStorageFilePermission.cs
- BufferedOutputStream.cs
- CombinedGeometry.cs
- NewExpression.cs
- NativeObjectSecurity.cs
- X509SecurityTokenProvider.cs
- XmlSchemaValidationException.cs
- UrlMappingsSection.cs
- CustomBindingElement.cs
- AudioFormatConverter.cs
- KeyEventArgs.cs
- AttributeProviderAttribute.cs
- CompareValidator.cs
- DelegatingHeader.cs
- AutoResetEvent.cs
- CreatingCookieEventArgs.cs
- CompoundFileStreamReference.cs
- RenderContext.cs
- DBDataPermissionAttribute.cs
- HtmlTextBoxAdapter.cs
- TagPrefixCollection.cs
- BitmapSource.cs
- Context.cs
- IfAction.cs
- RowToFieldTransformer.cs
- WebResponse.cs
- SupportingTokenBindingElement.cs
- SessionParameter.cs
- RectKeyFrameCollection.cs
- ActivityTypeDesigner.xaml.cs
- ImageListImage.cs
- KernelTypeValidation.cs
- FunctionImportMapping.cs
- ParallelTimeline.cs
- TypeDescriptor.cs
- HtmlTextArea.cs
- CriticalHandle.cs
- xmlNames.cs
- HorizontalAlignConverter.cs
- DataGridViewColumnHeaderCell.cs
- ColumnMapTranslator.cs
- SafeFileMappingHandle.cs
- HostingPreferredMapPath.cs
- TypedTableGenerator.cs
- MouseEvent.cs
- NullableDoubleAverageAggregationOperator.cs
- ParameterBuilder.cs
- XmlTypeAttribute.cs
- BamlCollectionHolder.cs
- WinHttpWebProxyFinder.cs
- ResourceReferenceExpressionConverter.cs
- FixedSOMTable.cs
- AppDomainFactory.cs
- SiteMapDesignerDataSourceView.cs
- Timeline.cs
- ImageBrush.cs
- StrokeCollectionConverter.cs
- ListItemCollection.cs
- ToolStripGrip.cs
- HtmlButton.cs
- ComboBoxItem.cs
- StrokeDescriptor.cs
- OdbcHandle.cs
- Pair.cs
- _CommandStream.cs
- ListMarkerSourceInfo.cs
- RepeatInfo.cs
- NetStream.cs
- CssTextWriter.cs
- TypeUtil.cs
- SimpleWebHandlerParser.cs
- TemplateParser.cs
- FaultException.cs
- BuildManager.cs
- PolicyUnit.cs
- CorrelationKeyCalculator.cs
- ChildDocumentBlock.cs
- CollectionEditorDialog.cs
- updateconfighost.cs
- TextEditorSelection.cs
- XPathPatternBuilder.cs
- Boolean.cs