Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / FontWeightConverter.cs / 1 / FontWeightConverter.cs
//---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Description: FontWeight type converter. // // History: // 01/25/2005 mleonov - Created. // //--------------------------------------------------------------------------- using System; using System.IO; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using MS.Internal; using System.Windows.Media; using System.Text; using System.Collections; using System.Globalization; using System.Runtime.InteropServices; using System.Security; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows { ////// FontWeightConverter class parses a font weight string. /// public sealed class FontWeightConverter : TypeConverter { ////// CanConvertFrom /// public override bool CanConvertFrom(ITypeDescriptorContext td, Type t) { if (t == typeof(string)) { return true; } else { return false; } } ////// TypeConverter method override. /// /// ITypeDescriptorContext /// Type to convert to ///true if conversion is possible public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { if (destinationType == typeof(InstanceDescriptor) || destinationType == typeof(string)) { return true; } return base.CanConvertTo(context, destinationType); } ////// ConvertFrom - attempt to convert to a FontWeight from the given object /// ////// A NotSupportedException is thrown if the example object is null or is not a valid type /// which can be converted to a FontWeight. /// public override object ConvertFrom(ITypeDescriptorContext td, CultureInfo ci, object value) { if (null == value) { throw GetConvertFromException(value); } String s = value as string; if (null == s) { throw new ArgumentException(SR.Get(SRID.General_BadType, "ConvertFrom"), "value"); } FontWeight fontWeight = new FontWeight(); if (!FontWeights.FontWeightStringToKnownWeight(s, ci, ref fontWeight)) throw new FormatException(SR.Get(SRID.Parsers_IllegalToken)); return fontWeight; } ////// TypeConverter method implementation. /// ////// An NotSupportedException is thrown if the example object is null or is not a FontWeight, /// or if the destinationType isn't one of the valid destination types. /// /// ITypeDescriptorContext /// current culture (see CLR specs) /// value to convert from /// Type to convert to ///converted value ////// Critical: calls InstanceDescriptor ctor which LinkDemands /// PublicOK: can only make an InstanceDescriptor for FontWeight, not an arbitrary class /// [SecurityCritical] public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType != null && value is FontWeight) { if (destinationType == typeof(InstanceDescriptor)) { MethodInfo mi = typeof(FontWeight).GetMethod("FromOpenTypeWeight", new Type[]{typeof(int)}); FontWeight c = (FontWeight)value; return new InstanceDescriptor(mi, new object[]{c.ToOpenTypeWeight()}); } else if (destinationType == typeof(string)) { FontWeight c = (FontWeight)value; return ((IFormattable)c).ToString(null, culture); } } // Pass unhandled cases to base class (which will throw exceptions for null value or destinationType.) return base.ConvertTo(context, culture, value, destinationType); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Description: FontWeight type converter. // // History: // 01/25/2005 mleonov - Created. // //--------------------------------------------------------------------------- using System; using System.IO; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using MS.Internal; using System.Windows.Media; using System.Text; using System.Collections; using System.Globalization; using System.Runtime.InteropServices; using System.Security; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows { ////// FontWeightConverter class parses a font weight string. /// public sealed class FontWeightConverter : TypeConverter { ////// CanConvertFrom /// public override bool CanConvertFrom(ITypeDescriptorContext td, Type t) { if (t == typeof(string)) { return true; } else { return false; } } ////// TypeConverter method override. /// /// ITypeDescriptorContext /// Type to convert to ///true if conversion is possible public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) { if (destinationType == typeof(InstanceDescriptor) || destinationType == typeof(string)) { return true; } return base.CanConvertTo(context, destinationType); } ////// ConvertFrom - attempt to convert to a FontWeight from the given object /// ////// A NotSupportedException is thrown if the example object is null or is not a valid type /// which can be converted to a FontWeight. /// public override object ConvertFrom(ITypeDescriptorContext td, CultureInfo ci, object value) { if (null == value) { throw GetConvertFromException(value); } String s = value as string; if (null == s) { throw new ArgumentException(SR.Get(SRID.General_BadType, "ConvertFrom"), "value"); } FontWeight fontWeight = new FontWeight(); if (!FontWeights.FontWeightStringToKnownWeight(s, ci, ref fontWeight)) throw new FormatException(SR.Get(SRID.Parsers_IllegalToken)); return fontWeight; } ////// TypeConverter method implementation. /// ////// An NotSupportedException is thrown if the example object is null or is not a FontWeight, /// or if the destinationType isn't one of the valid destination types. /// /// ITypeDescriptorContext /// current culture (see CLR specs) /// value to convert from /// Type to convert to ///converted value ////// Critical: calls InstanceDescriptor ctor which LinkDemands /// PublicOK: can only make an InstanceDescriptor for FontWeight, not an arbitrary class /// [SecurityCritical] public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType != null && value is FontWeight) { if (destinationType == typeof(InstanceDescriptor)) { MethodInfo mi = typeof(FontWeight).GetMethod("FromOpenTypeWeight", new Type[]{typeof(int)}); FontWeight c = (FontWeight)value; return new InstanceDescriptor(mi, new object[]{c.ToOpenTypeWeight()}); } else if (destinationType == typeof(string)) { FontWeight c = (FontWeight)value; return ((IFormattable)c).ToString(null, culture); } } // Pass unhandled cases to base class (which will throw exceptions for null value or destinationType.) return base.ConvertTo(context, culture, value, destinationType); } } } // 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
- BaseCodePageEncoding.cs
- LoggedException.cs
- ProtocolElementCollection.cs
- XPathDocumentIterator.cs
- FileDataSourceCache.cs
- SamlSubjectStatement.cs
- DependencyPropertyKey.cs
- querybuilder.cs
- Polyline.cs
- ToolStripDropDownClosingEventArgs.cs
- MimeTypeMapper.cs
- CodeTypeMember.cs
- ViewCellSlot.cs
- ToolStripProgressBar.cs
- StaticContext.cs
- XmlNodeList.cs
- ObjectStorage.cs
- CreateUserWizard.cs
- InvokeHandlers.cs
- SQLInt64.cs
- QueryAccessibilityHelpEvent.cs
- AsyncResult.cs
- DynamicMethod.cs
- CatalogPartCollection.cs
- DynamicHyperLink.cs
- ClrProviderManifest.cs
- WebContext.cs
- ParserContext.cs
- TraceContextEventArgs.cs
- BaseCodeDomTreeGenerator.cs
- StorageComplexPropertyMapping.cs
- Mapping.cs
- AppDomainProtocolHandler.cs
- UnmanagedHandle.cs
- StorageTypeMapping.cs
- AsyncParams.cs
- ComponentSerializationService.cs
- CodeGenerator.cs
- ExpressionBindingCollection.cs
- cookiecollection.cs
- XmlDictionary.cs
- QueryPageSettingsEventArgs.cs
- RegexCompiler.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- ObjectCloneHelper.cs
- MexHttpsBindingCollectionElement.cs
- CreateRefExpr.cs
- ExternalFile.cs
- RTLAwareMessageBox.cs
- _SecureChannel.cs
- DataMember.cs
- EdmProperty.cs
- UnsafeNativeMethods.cs
- ColumnMapTranslator.cs
- SyntaxCheck.cs
- BezierSegment.cs
- SchemaTypeEmitter.cs
- RelationshipNavigation.cs
- TextFormatterHost.cs
- XPathPatternBuilder.cs
- WorkflowServiceHostFactory.cs
- DetailsViewInsertedEventArgs.cs
- _KerberosClient.cs
- GroupLabel.cs
- LeafCellTreeNode.cs
- SrgsDocument.cs
- SQLInt64.cs
- BatchStream.cs
- VirtualPath.cs
- WebPartDisplayModeCancelEventArgs.cs
- CollectionView.cs
- TableRowGroup.cs
- SelectionEditingBehavior.cs
- PathGradientBrush.cs
- ComponentChangingEvent.cs
- CodeConstructor.cs
- SerializerWriterEventHandlers.cs
- SQLDateTimeStorage.cs
- WebPartsPersonalization.cs
- MachineSettingsSection.cs
- AnnotationComponentChooser.cs
- BooleanAnimationBase.cs
- FlowDecision.cs
- CollectionType.cs
- DataService.cs
- ParseHttpDate.cs
- ToolStripPanelSelectionBehavior.cs
- AtomicFile.cs
- Application.cs
- CustomPopupPlacement.cs
- PointAnimation.cs
- RSAProtectedConfigurationProvider.cs
- HttpCapabilitiesSectionHandler.cs
- ApplicationCommands.cs
- QueryOptionExpression.cs
- XmlSchemaComplexContent.cs
- SqlBooleanizer.cs
- FileAuthorizationModule.cs
- PrivateFontCollection.cs
- DependencyPropertyKind.cs