Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Framework / System / Windows / FontSizeConverter.cs / 1 / FontSizeConverter.cs
//----------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// File: FontSizeConverter.cs
//
// Description: Converter for FontSize to Double
//
// History:
// 01/12/05 : GHermann - Ported from FontSize
//
//---------------------------------------------------------------------------
using System;
using System.IO;
using System.Diagnostics;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Reflection; // for ConstructorInfo
using System.Globalization; // for CultureInfo
using MS.Utility; // For ExceptionStringTable
using System.Windows.Media; // for Typeface
using System.Windows.Controls; // for ReadingPanel
using System.Windows.Documents;
using System.Windows.Markup;
using MS.Internal;
using MS.Internal.Text;
using MS.Internal.Documents;
namespace System.Windows
{
///
/// TypeConverter to convert FontSize to/from other types.
/// Currently: string, int, float, and double are supported.
///
// Used by Parser to parse BoxUnits from markup.
public class FontSizeConverter : TypeConverter
{
///
/// TypeConverter method override.
///
/// ITypeDescriptorContext
/// Type to convert from
/// true if conversion is possible
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return (sourceType == typeof(string)
|| sourceType == typeof(int)
|| sourceType == typeof(float)
|| sourceType == typeof(double));
}
///
/// 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))
{
return true;
}
return base.CanConvertTo(context, destinationType);
}
///
/// TypeConverter method implementation.
///
/// ITypeDescriptorContext
/// Current culture (see CLR specs)
/// value to convert from
/// value that is result of conversion
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
if (value == null)
{
throw GetConvertFromException(value);
}
// NB: The culture passed from Avalon parser should always be the invariant culture.
// Do we care about usage in other circumstances?
string text = value as string;
if (text != null)
{
double amount;
FromString(text, culture,
out amount);
return amount;
}
if (value is System.Int32 || value is System.Single || value is System.Double)
{
return (double)value;
}
// Can't convert, wrong type
return null;
}
///
/// TypeConverter method implementation.
///
/// ITypeDescriptorContext
/// current culture (see CLR specs)
/// value to convert from
/// Type to convert to
/// converted value
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
if (destinationType == null)
{
throw new ArgumentNullException("destinationType");
}
double fs = (double)value;
if (destinationType == typeof(string))
{
return fs.ToString(culture);
}
if (destinationType == typeof(int))
{
return (int)fs;
}
if (destinationType == typeof(float))
{
return (float)fs;
}
if (destinationType == typeof(double))
{
return fs;
}
return base.ConvertTo(context, culture, value, destinationType);
}
///
/// Convert a string into an amount and a font size type that can be used to create
/// and instance of a Fontsize, or to serialize in a more compact representation to
/// a baml stream.
///
internal static void FromString(
string text,
CultureInfo culture,
out double amount)
{
amount = LengthConverter.FromString(text, culture);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// File: FontSizeConverter.cs
//
// Description: Converter for FontSize to Double
//
// History:
// 01/12/05 : GHermann - Ported from FontSize
//
//---------------------------------------------------------------------------
using System;
using System.IO;
using System.Diagnostics;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Reflection; // for ConstructorInfo
using System.Globalization; // for CultureInfo
using MS.Utility; // For ExceptionStringTable
using System.Windows.Media; // for Typeface
using System.Windows.Controls; // for ReadingPanel
using System.Windows.Documents;
using System.Windows.Markup;
using MS.Internal;
using MS.Internal.Text;
using MS.Internal.Documents;
namespace System.Windows
{
///
/// TypeConverter to convert FontSize to/from other types.
/// Currently: string, int, float, and double are supported.
///
// Used by Parser to parse BoxUnits from markup.
public class FontSizeConverter : TypeConverter
{
///
/// TypeConverter method override.
///
/// ITypeDescriptorContext
/// Type to convert from
/// true if conversion is possible
public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)
{
return (sourceType == typeof(string)
|| sourceType == typeof(int)
|| sourceType == typeof(float)
|| sourceType == typeof(double));
}
///
/// 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))
{
return true;
}
return base.CanConvertTo(context, destinationType);
}
///
/// TypeConverter method implementation.
///
/// ITypeDescriptorContext
/// Current culture (see CLR specs)
/// value to convert from
/// value that is result of conversion
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
{
if (value == null)
{
throw GetConvertFromException(value);
}
// NB: The culture passed from Avalon parser should always be the invariant culture.
// Do we care about usage in other circumstances?
string text = value as string;
if (text != null)
{
double amount;
FromString(text, culture,
out amount);
return amount;
}
if (value is System.Int32 || value is System.Single || value is System.Double)
{
return (double)value;
}
// Can't convert, wrong type
return null;
}
///
/// TypeConverter method implementation.
///
/// ITypeDescriptorContext
/// current culture (see CLR specs)
/// value to convert from
/// Type to convert to
/// converted value
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
{
if (destinationType == null)
{
throw new ArgumentNullException("destinationType");
}
double fs = (double)value;
if (destinationType == typeof(string))
{
return fs.ToString(culture);
}
if (destinationType == typeof(int))
{
return (int)fs;
}
if (destinationType == typeof(float))
{
return (float)fs;
}
if (destinationType == typeof(double))
{
return fs;
}
return base.ConvertTo(context, culture, value, destinationType);
}
///
/// Convert a string into an amount and a font size type that can be used to create
/// and instance of a Fontsize, or to serialize in a more compact representation to
/// a baml stream.
///
internal static void FromString(
string text,
CultureInfo culture,
out double amount)
{
amount = LengthConverter.FromString(text, culture);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SqlDataReader.cs
- ProxyHelper.cs
- RelatedCurrencyManager.cs
- ColorTransform.cs
- designeractionbehavior.cs
- Calendar.cs
- Paragraph.cs
- BufferedStream2.cs
- BrowserInteropHelper.cs
- SafeArchiveContext.cs
- JulianCalendar.cs
- CompModSwitches.cs
- LinqDataSourceInsertEventArgs.cs
- RuleInfoComparer.cs
- DataGridViewCellEventArgs.cs
- XmlLinkedNode.cs
- ZoneMembershipCondition.cs
- WebPartsPersonalization.cs
- HGlobalSafeHandle.cs
- TraceContextEventArgs.cs
- PeerCollaborationPermission.cs
- RecognizerStateChangedEventArgs.cs
- KeyEvent.cs
- SingleObjectCollection.cs
- hresults.cs
- ResourcesGenerator.cs
- GridEntryCollection.cs
- XdrBuilder.cs
- UniqueID.cs
- DataGridViewColumnStateChangedEventArgs.cs
- XmlCodeExporter.cs
- HwndHost.cs
- PublisherMembershipCondition.cs
- QueueProcessor.cs
- ControlParameter.cs
- WindowsFormsLinkLabel.cs
- Thread.cs
- httpstaticobjectscollection.cs
- SQLMoney.cs
- TemplateAction.cs
- WebPartVerbCollection.cs
- PenContext.cs
- Image.cs
- QueryTaskGroupState.cs
- NavigationCommands.cs
- ProxyFragment.cs
- RectAnimationBase.cs
- ResourcesGenerator.cs
- ReturnValue.cs
- DbConnectionPoolGroup.cs
- TypeHelpers.cs
- EntityCommandExecutionException.cs
- OdbcEnvironmentHandle.cs
- SignedPkcs7.cs
- RowToParametersTransformer.cs
- SingleObjectCollection.cs
- FlowLayoutPanel.cs
- RequestCacheManager.cs
- HyperLinkDesigner.cs
- ScriptingJsonSerializationSection.cs
- IgnoreFlushAndCloseStream.cs
- DataControlCommands.cs
- NullToBooleanConverter.cs
- DataGridClipboardCellContent.cs
- ToolStripContentPanel.cs
- HtmlInputReset.cs
- SQLCharsStorage.cs
- WindowsListViewGroup.cs
- BaseValidator.cs
- ControlParameter.cs
- KeyProperty.cs
- DataSourceXmlSerializer.cs
- AttachedPropertyInfo.cs
- DataGridViewIntLinkedList.cs
- WindowPatternIdentifiers.cs
- DeferredElementTreeState.cs
- FillRuleValidation.cs
- ButtonField.cs
- CollectionViewGroup.cs
- BaseCodePageEncoding.cs
- Delegate.cs
- HtmlGenericControl.cs
- XmlSerializableServices.cs
- StateWorkerRequest.cs
- AnnotationResource.cs
- ExtensionDataReader.cs
- OdbcConnectionHandle.cs
- MetadataItemCollectionFactory.cs
- Rights.cs
- UpdateCompiler.cs
- BaseDataBoundControl.cs
- LinqDataSourceView.cs
- HttpDictionary.cs
- SqlTypesSchemaImporter.cs
- QueryCacheKey.cs
- PersonalizationDictionary.cs
- XmlArrayAttribute.cs
- EndOfStreamException.cs
- Knowncolors.cs
- OpacityConverter.cs