Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / FontFace / FontDifferentiator.cs / 1305600 / FontDifferentiator.cs
//---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Description: FontDifferentiator class handles parsing font family and face names // and adjusting stretch, weight and style values. // // History: // 11/10/2005 : mleonov - Started integration from a prototype application created by DBrown. // 1/21/2009 : [....] - removed unused code. // //--------------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Globalization; using System.Text; using System.Windows; using System.Windows.Markup; // for XmlLanguage namespace MS.Internal.FontFace { ////// FontDifferentiator class handles parsing font family and face names /// and adjusting stretch, weight and style values. /// internal static class FontDifferentiator { internal static IDictionaryConstructFaceNamesByStyleWeightStretch( FontStyle style, FontWeight weight, FontStretch stretch) { string faceName = BuildFaceName(style, weight, stretch); // Default comparer calls CultureInfo.Equals, which works for our purposes. Dictionary faceNames = new Dictionary (1); faceNames.Add(XmlLanguage.GetLanguage("en-us"), faceName); return faceNames; } private static string BuildFaceName( FontStyle fontStyle, FontWeight fontWeight, FontStretch fontStretch ) { string parsedStyleName = null; string parsedWeightName = null; string parsedStretchName = null; string regularFaceName = "Regular"; if (fontWeight != FontWeights.Normal) parsedWeightName = ((IFormattable)fontWeight).ToString(null, CultureInfo.InvariantCulture); if (fontStretch != FontStretches.Normal) parsedStretchName = ((IFormattable)fontStretch).ToString(null, CultureInfo.InvariantCulture); if (fontStyle != FontStyles.Normal) parsedStyleName = ((IFormattable)fontStyle).ToString(null, CultureInfo.InvariantCulture); // Build correct face string. // Set the initial capacity to be able to hold the word "Regular". StringBuilder faceNameBuilder = new StringBuilder(7); if (parsedStretchName != null) { faceNameBuilder.Append(parsedStretchName); } if (parsedWeightName != null) { if (faceNameBuilder.Length > 0) { faceNameBuilder.Append(" "); } faceNameBuilder.Append(parsedWeightName); } if (parsedStyleName != null) { if (faceNameBuilder.Length > 0) { faceNameBuilder.Append(" "); } faceNameBuilder.Append(parsedStyleName); } if (faceNameBuilder.Length == 0) { faceNameBuilder.Append(regularFaceName); } return faceNameBuilder.ToString(); } } } // 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
- ListenerElementsCollection.cs
- InnerItemCollectionView.cs
- ButtonChrome.cs
- AnnotationHelper.cs
- XamlParser.cs
- ActiveXHost.cs
- BuilderPropertyEntry.cs
- PolicyException.cs
- QualifiedCellIdBoolean.cs
- MultiAsyncResult.cs
- TreeBuilder.cs
- DataGridViewCellStyleConverter.cs
- DataSourceCache.cs
- OutputScopeManager.cs
- EnterpriseServicesHelper.cs
- DesignRelation.cs
- DiffuseMaterial.cs
- BaseCodePageEncoding.cs
- MappedMetaModel.cs
- LocatorPart.cs
- StylusTip.cs
- MonthCalendar.cs
- MethodImplAttribute.cs
- DBSchemaTable.cs
- ReachDocumentReferenceSerializer.cs
- Helpers.cs
- PlatformCulture.cs
- PrinterSettings.cs
- StorageSetMapping.cs
- Nodes.cs
- TryCatchDesigner.xaml.cs
- CommandID.cs
- DataGridCellEditEndingEventArgs.cs
- DefaultAuthorizationContext.cs
- EventOpcode.cs
- UIPermission.cs
- XmlConverter.cs
- Certificate.cs
- Activator.cs
- DetailsViewDeleteEventArgs.cs
- Baml6Assembly.cs
- DataGridViewCellStyle.cs
- PreloadedPackages.cs
- FromReply.cs
- FileLogRecordEnumerator.cs
- ValidationErrorCollection.cs
- PropertyStore.cs
- log.cs
- SupportsEventValidationAttribute.cs
- IsolatedStorageSecurityState.cs
- ScrollEvent.cs
- XsltException.cs
- HTMLTextWriter.cs
- ArraySegment.cs
- CompositeActivityDesigner.cs
- SqlDataSourceCommandEventArgs.cs
- DataGridViewCellStyleChangedEventArgs.cs
- EventLog.cs
- WebConfigurationHostFileChange.cs
- HttpBufferlessInputStream.cs
- HttpResponseHeader.cs
- SystemFonts.cs
- IsolatedStorageException.cs
- StringArrayConverter.cs
- EventNotify.cs
- XsdValidatingReader.cs
- ObjectSecurityT.cs
- DataPagerField.cs
- DecoratedNameAttribute.cs
- PersonalizationStateQuery.cs
- SerializationStore.cs
- BamlLocalizableResourceKey.cs
- XPathDocumentBuilder.cs
- HtmlEmptyTagControlBuilder.cs
- GiveFeedbackEventArgs.cs
- WindowsEditBoxRange.cs
- FacetDescription.cs
- SafeArrayRankMismatchException.cs
- HandlerFactoryCache.cs
- XmlAttributeAttribute.cs
- SByteConverter.cs
- DifferencingCollection.cs
- MatcherBuilder.cs
- ApplicationSecurityManager.cs
- SynthesizerStateChangedEventArgs.cs
- SqlDataRecord.cs
- SendActivityEventArgs.cs
- XmlException.cs
- BooleanAnimationBase.cs
- Misc.cs
- HtmlSelect.cs
- NativeBuffer.cs
- PowerEase.cs
- RSAPKCS1SignatureDeformatter.cs
- File.cs
- RolePrincipal.cs
- TableLayoutPanelBehavior.cs
- StagingAreaInputItem.cs
- SqlException.cs
- SpinWait.cs