Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- ToolStripPanelSelectionGlyph.cs
- xmlformatgeneratorstatics.cs
- ValueTypeIndexerReference.cs
- TextTreeRootNode.cs
- Slider.cs
- CheckBoxStandardAdapter.cs
- DataGridViewRow.cs
- InputManager.cs
- NumberAction.cs
- SubclassTypeValidator.cs
- WebConvert.cs
- LocatorBase.cs
- WindowProviderWrapper.cs
- EpmSyndicationContentSerializer.cs
- StringPropertyBuilder.cs
- TextElementCollection.cs
- PagePropertiesChangingEventArgs.cs
- WizardStepBase.cs
- SymLanguageType.cs
- TrustManagerPromptUI.cs
- MenuCommand.cs
- HwndMouseInputProvider.cs
- Rule.cs
- LongValidatorAttribute.cs
- HashMembershipCondition.cs
- NullableFloatAverageAggregationOperator.cs
- DirectoryInfo.cs
- OwnerDrawPropertyBag.cs
- XmlNodeWriter.cs
- webproxy.cs
- WorkflowTransactionOptions.cs
- XmlSerializableReader.cs
- AudioDeviceOut.cs
- XmlTextAttribute.cs
- TextViewBase.cs
- DependencyObject.cs
- ObjectConverter.cs
- PolyQuadraticBezierSegment.cs
- HttpCapabilitiesEvaluator.cs
- AssemblyAttributesGoHere.cs
- Cell.cs
- WCFServiceClientProxyGenerator.cs
- SamlSubjectStatement.cs
- MasterPageParser.cs
- CategoryNameCollection.cs
- SoapSchemaExporter.cs
- CounterSample.cs
- ObjectAnimationBase.cs
- Focus.cs
- ParameterCollectionEditor.cs
- TagPrefixCollection.cs
- DetailsViewUpdateEventArgs.cs
- InternalBufferOverflowException.cs
- TextMetrics.cs
- ContextInformation.cs
- EmptyQuery.cs
- ObjectDataSourceSelectingEventArgs.cs
- TTSVoice.cs
- SourceLineInfo.cs
- arabicshape.cs
- Listbox.cs
- CssStyleCollection.cs
- BindToObject.cs
- ServiceCredentialsElement.cs
- TimelineGroup.cs
- DataGridTextBox.cs
- RoleGroupCollectionEditor.cs
- DecimalFormatter.cs
- HtmlInputHidden.cs
- ControlAdapter.cs
- ProviderConnectionPointCollection.cs
- ResXResourceWriter.cs
- QilInvokeEarlyBound.cs
- QuadraticBezierSegment.cs
- DEREncoding.cs
- SoapAttributeAttribute.cs
- AddInAdapter.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- MetadataArtifactLoader.cs
- SchemaImporterExtension.cs
- ContentPlaceHolderDesigner.cs
- Win32Exception.cs
- CommandField.cs
- XmlSerializerVersionAttribute.cs
- DivideByZeroException.cs
- EnlistmentState.cs
- PointUtil.cs
- MasterPage.cs
- StatusBar.cs
- FullTextLine.cs
- CultureInfoConverter.cs
- PhysicalFontFamily.cs
- RtfControls.cs
- HMACSHA256.cs
- StandardTransformFactory.cs
- BitmapEffect.cs
- DataDocumentXPathNavigator.cs
- WebEncodingValidatorAttribute.cs
- OleDbParameter.cs
- KeyBinding.cs