Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / MS / Internal / Shaping / CompositeTypefaceMetrics.cs / 1 / CompositeTypefaceMetrics.cs
//------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2001 // // File: CompositeTypefaceMetrics.cs // // Contents: Typeface metrics of a composite font // // Created: 5-26-2003 [....] ([....]) // //----------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Diagnostics; using System.Windows; using System.Windows.Media; using System.Windows.Markup; // for XmlLanguage using MS.Internal.FontFace; using System.Globalization; namespace MS.Internal.Shaping { ////// Character-based info of a font family /// internal class CompositeTypefaceMetrics : ITypefaceMetrics { private double _underlinePosition; private double _underlineThickness; private double _strikethroughPosition; private double _strikethroughThickenss; private double _capsHeight; private double _xHeight; private FontStyle _style; private FontWeight _weight; private FontStretch _stretch; // the following figures are collected from observation of 'Times New Roman' // at 72 pt in MS-Word. [[....], 5/26/2003] // The following Offsets are offsets from baseline. Negative means below the baseline. private const double UnderlineOffsetDefaultInEm = -0.15625; private const double UnderlineSizeDefaultInEm = (-UnderlineOffsetDefaultInEm) / 2; private const double StrikethroughOffsetDefaultInEm = 0.3125; private const double StrikethroughSizeDefaultInEm = UnderlineSizeDefaultInEm; private const double CapsHeightDefaultInEm = 1; private const double XHeightDefaultInEm = 0.671875; internal CompositeTypefaceMetrics( double underlinePosition, double underlineThickness, double strikethroughPosition, double strikethroughThickness, double capsHeight, double xHeight, FontStyle style, FontWeight weight, FontStretch stretch ) { _underlinePosition = underlinePosition != 0 ? underlinePosition : UnderlineOffsetDefaultInEm; _underlineThickness = underlineThickness > 0 ? underlineThickness : UnderlineSizeDefaultInEm; _strikethroughPosition = strikethroughPosition != 0 ? strikethroughPosition : StrikethroughOffsetDefaultInEm; _strikethroughThickenss = strikethroughThickness > 0 ? strikethroughThickness : StrikethroughSizeDefaultInEm; _capsHeight = capsHeight > 0 ? capsHeight : CapsHeightDefaultInEm; _xHeight = xHeight > 0 ? xHeight : XHeightDefaultInEm; _style = style; _weight = weight; _stretch = stretch; } internal CompositeTypefaceMetrics() : this( UnderlineOffsetDefaultInEm, UnderlineSizeDefaultInEm, StrikethroughOffsetDefaultInEm, StrikethroughSizeDefaultInEm, CapsHeightDefaultInEm, XHeightDefaultInEm, FontStyles.Normal, FontWeights.Regular, FontStretches.Normal ) { } ////// (Western) x-height relative to em size. /// public double XHeight { get { return _xHeight; } } ////// Distance from baseline to top of English capital, relative to em size. /// public double CapsHeight { get { return _capsHeight; } } ////// Distance from baseline to underline position /// public double UnderlinePosition { get { return _underlinePosition; } } ////// Underline thickness /// public double UnderlineThickness { get { return _underlineThickness; } } ////// Distance from baseline to strike-through position /// public double StrikethroughPosition { get { return _strikethroughPosition; } } ////// strike-through thickness /// public double StrikethroughThickness { get { return _strikethroughThickenss; } } ////// Flag indicate whether this is symbol typeface /// public bool Symbol { get { return false; } } ////// Style simulation flags for this typeface. /// public StyleSimulations StyleSimulations { get { return StyleSimulations.None; } } ////// Collection of localized face names adjusted by the font differentiator. /// public IDictionaryAdjustedFaceNames { get { return FontDifferentiator.ConstructFaceNamesByStyleWeightStretch(_style, _weight, _stretch); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ListViewInsertedEventArgs.cs
- messageonlyhwndwrapper.cs
- SchemaInfo.cs
- StateMachineAction.cs
- DropSource.cs
- documentsequencetextpointer.cs
- XmlWriterTraceListener.cs
- EntityDataSourceDesigner.cs
- InstancePersistenceCommandException.cs
- CodeComment.cs
- Internal.cs
- CharUnicodeInfo.cs
- BooleanAnimationUsingKeyFrames.cs
- MiniCustomAttributeInfo.cs
- IssuedTokenParametersEndpointAddressElement.cs
- ReaderWriterLockWrapper.cs
- DataSourceDesigner.cs
- CompilationSection.cs
- Rotation3DAnimation.cs
- SuppressMessageAttribute.cs
- WebPartEditVerb.cs
- CodeTypeReferenceCollection.cs
- ProfilePropertySettings.cs
- storepermission.cs
- HtmlTableRowCollection.cs
- AppDomainFactory.cs
- DependencySource.cs
- ISFClipboardData.cs
- TreeNodeEventArgs.cs
- InheritanceUI.cs
- InputLangChangeEvent.cs
- RequestQueryParser.cs
- dbdatarecord.cs
- TableAutomationPeer.cs
- Menu.cs
- webproxy.cs
- SerializeAbsoluteContext.cs
- UnknownMessageReceivedEventArgs.cs
- ContentValidator.cs
- sortedlist.cs
- HtmlTitle.cs
- WindowShowOrOpenTracker.cs
- AxisAngleRotation3D.cs
- UInt32Storage.cs
- XmlSerializerFaultFormatter.cs
- Point3DConverter.cs
- UntypedNullExpression.cs
- XmlILTrace.cs
- MoveSizeWinEventHandler.cs
- FileUtil.cs
- CommonProperties.cs
- HandlerBase.cs
- ProcessModelInfo.cs
- DataTransferEventArgs.cs
- CodeSubDirectoriesCollection.cs
- CodeArrayIndexerExpression.cs
- ToolStripManager.cs
- ConnectionOrientedTransportBindingElement.cs
- RootBrowserWindowProxy.cs
- ProjectionNode.cs
- OleDbCommand.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- XmlNodeChangedEventArgs.cs
- StringPropertyBuilder.cs
- ZipIOLocalFileDataDescriptor.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- DataGridViewColumnDesigner.cs
- JsonDeserializer.cs
- MouseGestureConverter.cs
- IList.cs
- OdbcDataReader.cs
- UrlPath.cs
- XPathDocumentNavigator.cs
- RunInstallerAttribute.cs
- AsyncPostBackErrorEventArgs.cs
- ProcessRequestArgs.cs
- ComplexObject.cs
- DeferrableContent.cs
- ApplicationSecurityManager.cs
- HttpModulesSection.cs
- ScriptDescriptor.cs
- XmlDocumentType.cs
- MergeFilterQuery.cs
- WebConvert.cs
- ObjectDataSourceMethodEventArgs.cs
- AffineTransform3D.cs
- DoWorkEventArgs.cs
- NavigationPropertySingletonExpression.cs
- TextElementEditingBehaviorAttribute.cs
- MouseGestureValueSerializer.cs
- OleCmdHelper.cs
- Region.cs
- RemotingServices.cs
- ServiceKnownTypeAttribute.cs
- XmlSerializerVersionAttribute.cs
- Stroke2.cs
- BufferModeSettings.cs
- ConfigUtil.cs
- StaticExtension.cs
- ExpressionBuilder.cs