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
- KeyEvent.cs
- EncodingInfo.cs
- ReadOnlyCollectionBase.cs
- RecommendedAsConfigurableAttribute.cs
- _OSSOCK.cs
- CharacterShapingProperties.cs
- SafeNativeMemoryHandle.cs
- TreeViewDesigner.cs
- DescendantOverDescendantQuery.cs
- ToolStripManager.cs
- XmlSchemaInclude.cs
- AdapterDictionary.cs
- GetIndexBinder.cs
- Panel.cs
- DataGridViewImageCell.cs
- figurelength.cs
- DispatchWrapper.cs
- NTAccount.cs
- StreamWriter.cs
- TickBar.cs
- SoapMessage.cs
- RegistryConfigurationProvider.cs
- GenericUriParser.cs
- OrthographicCamera.cs
- PrePostDescendentsWalker.cs
- ErrorProvider.cs
- ElapsedEventArgs.cs
- MediaPlayerState.cs
- ClientConfigPaths.cs
- DynamicObject.cs
- XmlnsDefinitionAttribute.cs
- BindingGroup.cs
- ClientOptions.cs
- RoutedEventArgs.cs
- FieldTemplateFactory.cs
- dataprotectionpermissionattribute.cs
- CryptoProvider.cs
- CorrelationQueryBehavior.cs
- DbCommandDefinition.cs
- Behavior.cs
- DataGridViewCellStateChangedEventArgs.cs
- AuthStoreRoleProvider.cs
- EndpointDiscoveryElement.cs
- AxWrapperGen.cs
- StaticExtension.cs
- ReadOnlyCollection.cs
- DelegateCompletionCallbackWrapper.cs
- HwndSource.cs
- X509UI.cs
- MapPathBasedVirtualPathProvider.cs
- OdbcStatementHandle.cs
- ListItem.cs
- SqlUtil.cs
- WindowsStatusBar.cs
- FormViewRow.cs
- BinaryCommonClasses.cs
- ListComponentEditorPage.cs
- HostProtectionException.cs
- CodeTryCatchFinallyStatement.cs
- DetailsViewPageEventArgs.cs
- TypedTableGenerator.cs
- InstancePersistenceEvent.cs
- ElementUtil.cs
- XmlElementAttribute.cs
- SafeLibraryHandle.cs
- Random.cs
- EventRouteFactory.cs
- QuotedPrintableStream.cs
- HierarchicalDataSourceControl.cs
- TableCell.cs
- TimeSpanHelper.cs
- NestPullup.cs
- webeventbuffer.cs
- DbModificationCommandTree.cs
- BindingContext.cs
- StopRoutingHandler.cs
- ValidationPropertyAttribute.cs
- RawKeyboardInputReport.cs
- SchemaImporterExtensionElement.cs
- BooleanConverter.cs
- InvalidOperationException.cs
- XMLUtil.cs
- TransformedBitmap.cs
- VerificationAttribute.cs
- ContactManager.cs
- Vector.cs
- ListViewDeletedEventArgs.cs
- SqlClientWrapperSmiStream.cs
- SafeNativeMethodsMilCoreApi.cs
- PrintingPermissionAttribute.cs
- WsdlInspector.cs
- CompilerError.cs
- ApplicationServiceHelper.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- StructuredTypeInfo.cs
- ConfigurationSectionGroup.cs
- ToolStripLabel.cs
- SaveFileDialog.cs
- CatalogPartCollection.cs
- TemplateBindingExtensionConverter.cs