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
- IdentityManager.cs
- ManagedIStream.cs
- CompositeScriptReferenceEventArgs.cs
- ErrorHandlingReceiver.cs
- ProfileGroupSettingsCollection.cs
- HitTestWithGeometryDrawingContextWalker.cs
- _TLSstream.cs
- HijriCalendar.cs
- DecimalStorage.cs
- ArraySegment.cs
- PassportAuthentication.cs
- PropertyToken.cs
- HighlightComponent.cs
- HttpCacheVary.cs
- ExistsInCollection.cs
- KeyConverter.cs
- LayoutEvent.cs
- Base64Stream.cs
- OperationPickerDialog.designer.cs
- ValueUnavailableException.cs
- ToReply.cs
- MD5Cng.cs
- UniqueIdentifierService.cs
- InstanceHandleReference.cs
- StrokeCollection.cs
- DataViewManager.cs
- PointLightBase.cs
- SQLBoolean.cs
- PriorityBindingExpression.cs
- ReliableMessagingVersion.cs
- HttpFileCollection.cs
- DateTimeHelper.cs
- BaseConfigurationRecord.cs
- OrthographicCamera.cs
- Encoding.cs
- StringSorter.cs
- HScrollProperties.cs
- XXXInfos.cs
- SqlPersonalizationProvider.cs
- SingleObjectCollection.cs
- KernelTypeValidation.cs
- AnnotationMap.cs
- EventListenerClientSide.cs
- MessageBodyMemberAttribute.cs
- XmlSchemaExporter.cs
- QueryOperationResponseOfT.cs
- PaperSize.cs
- ArrayMergeHelper.cs
- SessionStateItemCollection.cs
- cookiecontainer.cs
- XsltLibrary.cs
- TabControlCancelEvent.cs
- _LocalDataStoreMgr.cs
- InkCanvasSelectionAdorner.cs
- TextEmbeddedObject.cs
- OperationGenerator.cs
- EventProviderTraceListener.cs
- WebReferenceCollection.cs
- HWStack.cs
- ObjectDataSourceView.cs
- ObjectDataSourceDisposingEventArgs.cs
- AnnotationObservableCollection.cs
- Highlights.cs
- LocalBuilder.cs
- ImageCollectionCodeDomSerializer.cs
- TraceUtils.cs
- XmlSerializationReader.cs
- DataGridViewCellLinkedList.cs
- BooleanToVisibilityConverter.cs
- UIElement3DAutomationPeer.cs
- XmlSchemas.cs
- XmlDataLoader.cs
- _CookieModule.cs
- SqlServices.cs
- GlyphRun.cs
- TabControlAutomationPeer.cs
- SecurityContext.cs
- ErrorInfoXmlDocument.cs
- XmlDataImplementation.cs
- AddIn.cs
- PropertyInformationCollection.cs
- LicenseManager.cs
- _SecureChannel.cs
- LambdaValue.cs
- DesignerCatalogPartChrome.cs
- TextRenderingModeValidation.cs
- RegexBoyerMoore.cs
- Crc32.cs
- UriTemplateLiteralPathSegment.cs
- ObjectDataProvider.cs
- CancellationHandlerDesigner.cs
- UIAgentRequest.cs
- ListSourceHelper.cs
- WebSysDefaultValueAttribute.cs
- X509ThumbprintKeyIdentifierClause.cs
- XPathDocument.cs
- HtmlTableCell.cs
- PropertyExpression.cs
- PrimitiveXmlSerializers.cs
- KnownBoxes.cs