Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / FontStyleConverter.cs / 1 / FontStyleConverter.cs
//---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Description: FontStyle 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 { ////// FontStyleConverter class parses a font style string. /// public sealed class FontStyleConverter : 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 FontStyle 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 FontStyle. /// 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"); } FontStyle fontStyle = new FontStyle(); if (!FontStyles.FontStyleStringToKnownStyle(s, ci, ref fontStyle)) throw new FormatException(SR.Get(SRID.Parsers_IllegalToken)); return fontStyle; } ////// TypeConverter method implementation. /// ////// An NotSupportedException is thrown if the example object is null or is not a FontStyle, /// 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 FontStyle, not an arbitrary class /// [SecurityCritical] public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType != null && value is FontStyle) { if (destinationType == typeof(InstanceDescriptor)) { ConstructorInfo ci = typeof(FontStyle).GetConstructor(new Type[]{typeof(int)}); int c = ((FontStyle)value).GetStyleForInternalConstruction(); return new InstanceDescriptor(ci, new object[]{c}); } else if (destinationType == typeof(string)) { FontStyle c = (FontStyle)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: FontStyle 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 { ////// FontStyleConverter class parses a font style string. /// public sealed class FontStyleConverter : 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 FontStyle 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 FontStyle. /// 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"); } FontStyle fontStyle = new FontStyle(); if (!FontStyles.FontStyleStringToKnownStyle(s, ci, ref fontStyle)) throw new FormatException(SR.Get(SRID.Parsers_IllegalToken)); return fontStyle; } ////// TypeConverter method implementation. /// ////// An NotSupportedException is thrown if the example object is null or is not a FontStyle, /// 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 FontStyle, not an arbitrary class /// [SecurityCritical] public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType != null && value is FontStyle) { if (destinationType == typeof(InstanceDescriptor)) { ConstructorInfo ci = typeof(FontStyle).GetConstructor(new Type[]{typeof(int)}); int c = ((FontStyle)value).GetStyleForInternalConstruction(); return new InstanceDescriptor(ci, new object[]{c}); } else if (destinationType == typeof(string)) { FontStyle c = (FontStyle)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
- WizardStepCollectionEditor.cs
- Dynamic.cs
- StrokeDescriptor.cs
- TraceLevelHelper.cs
- StaticFileHandler.cs
- IERequestCache.cs
- RoleGroupCollection.cs
- FormViewDeletedEventArgs.cs
- InternalControlCollection.cs
- ColumnMapCopier.cs
- Roles.cs
- CommandPlan.cs
- recordstatescratchpad.cs
- StringReader.cs
- PropertyPath.cs
- BrowserDefinitionCollection.cs
- PropertyToken.cs
- CodeMemberProperty.cs
- DesignerHelpers.cs
- PropertyMapper.cs
- TextMarkerSource.cs
- WorkflowTraceTransfer.cs
- AccessViolationException.cs
- InteropExecutor.cs
- Reference.cs
- ManifestResourceInfo.cs
- DetailsViewInsertedEventArgs.cs
- XPathSingletonIterator.cs
- ApplicationDirectoryMembershipCondition.cs
- AtomServiceDocumentSerializer.cs
- Panel.cs
- PropertyMetadata.cs
- FormViewInsertedEventArgs.cs
- TreeNodeCollectionEditor.cs
- DataConnectionHelper.cs
- SystemIcmpV6Statistics.cs
- DocumentPageHost.cs
- FontConverter.cs
- ObjectListSelectEventArgs.cs
- WindowsGraphicsWrapper.cs
- StaticTextPointer.cs
- WindowsListViewItem.cs
- RadioButtonPopupAdapter.cs
- ImageBrush.cs
- AsyncSerializedWorker.cs
- KeySplineConverter.cs
- Serializer.cs
- FrameSecurityDescriptor.cs
- NetworkAddressChange.cs
- StrokeNodeOperations.cs
- CodeTypeDeclaration.cs
- Matrix.cs
- Handle.cs
- AnnouncementSendsAsyncResult.cs
- OutputCacheEntry.cs
- FixedDocumentPaginator.cs
- SendMailErrorEventArgs.cs
- NativeWindow.cs
- FacetDescription.cs
- Rect3DConverter.cs
- NativeMethods.cs
- MediaTimeline.cs
- Object.cs
- XmlValueConverter.cs
- CodeDirectiveCollection.cs
- VSWCFServiceContractGenerator.cs
- EUCJPEncoding.cs
- DataGridViewCellStateChangedEventArgs.cs
- FileSecurity.cs
- _CommandStream.cs
- DataSourceXmlSerializer.cs
- SerialPinChanges.cs
- BypassElement.cs
- EdmConstants.cs
- Tracer.cs
- FlowNode.cs
- DataTableReaderListener.cs
- ValueType.cs
- SoapRpcMethodAttribute.cs
- DoubleAnimationBase.cs
- QueryContinueDragEvent.cs
- CodeTryCatchFinallyStatement.cs
- FormView.cs
- HtmlAnchor.cs
- CategoryAttribute.cs
- SmtpDigestAuthenticationModule.cs
- InstanceContext.cs
- DataGridViewColumnStateChangedEventArgs.cs
- SqlRetyper.cs
- ChangeNode.cs
- FormCollection.cs
- SynchronizationLockException.cs
- Image.cs
- TreeChangeInfo.cs
- Padding.cs
- MenuItemCollection.cs
- DefaultSerializationProviderAttribute.cs
- HijriCalendar.cs
- DesignerRegionCollection.cs
- StatusBarAutomationPeer.cs