Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / Media / Animation / KeySplineConverter.cs / 1 / KeySplineConverter.cs
//------------------------------------------------------------------------------
// Microsoft Avalon
// Copyright (c) Microsoft Corporation, 2001-2003
//
// File: KeySplineConverter.cs
//-----------------------------------------------------------------------------
// Allow suppression of certain presharp messages
#pragma warning disable 1634, 1691
using MS.Internal;
using System;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Globalization;
using System.Reflection;
using System.Windows.Media.Animation;
using System.Security;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows
{
///
/// PointConverter - Converter class for converting instances of other types to Point instances
///
///
public class KeySplineConverter : TypeConverter
{
///
/// CanConvertFrom - Returns whether or not this class can convert from a given type
///
///
public override bool CanConvertFrom(ITypeDescriptorContext typeDescriptor, Type destinationType)
{
if (destinationType == 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;
}
else
{
return false;
}
}
///
/// ConvertFrom
///
public override object ConvertFrom(
ITypeDescriptorContext context,
CultureInfo cultureInfo,
object value)
{
string stringValue = value as string;
if (value == null)
{
throw new NotSupportedException(SR.Get(SRID.Converter_ConvertFromNotSupported));
}
TokenizerHelper th = new TokenizerHelper(stringValue, cultureInfo);
return new KeySpline(
Convert.ToDouble(th.NextTokenRequired(), cultureInfo),
Convert.ToDouble(th.NextTokenRequired(), cultureInfo),
Convert.ToDouble(th.NextTokenRequired(), cultureInfo),
Convert.ToDouble(th.NextTokenRequired(), cultureInfo));
}
///
/// TypeConverter method implementation.
///
/// ITypeDescriptorContext
/// current culture (see CLR specs), null is a valid value
/// value to convert from
/// Type to convert to
/// converted value
///
///
/// Critical: calls InstanceDescriptor ctor which LinkDemands
/// PublicOK: can only make an InstanceDescriptor for KeySpline, not an arbitrary class
///
[SecurityCritical]
public override object ConvertTo(
ITypeDescriptorContext context,
CultureInfo cultureInfo,
object value,
Type destinationType)
{
KeySpline keySpline = value as KeySpline;
if (keySpline != null && destinationType != null)
{
if (destinationType == typeof(InstanceDescriptor))
{
ConstructorInfo ci = typeof(KeySpline).GetConstructor(new Type[]
{
typeof(double), typeof(double),
typeof(double), typeof(double)
});
return new InstanceDescriptor(ci, new object[]
{
keySpline.ControlPoint1.X, keySpline.ControlPoint1.Y,
keySpline.ControlPoint2.X, keySpline.ControlPoint2.Y
});
}
else if (destinationType == typeof(string))
{
#pragma warning disable 56506 // Suppress presharp warning: Parameter 'cultureInfo.TextInfo' to this public method must be validated: A null-dereference can occur here.
return String.Format(
cultureInfo,
"{0}{4}{1}{4}{2}{4}{3}",
keySpline.ControlPoint1.X,
keySpline.ControlPoint1.Y,
keySpline.ControlPoint2.X,
keySpline.ControlPoint2.Y,
cultureInfo != null ? cultureInfo.TextInfo.ListSeparator : CultureInfo.InvariantCulture.TextInfo.ListSeparator);
#pragma warning restore 56506
}
}
// Pass unhandled cases to base class (which will throw exceptions for null value or destinationType.)
return base.ConvertTo(context, cultureInfo, value, destinationType);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
// Microsoft Avalon
// Copyright (c) Microsoft Corporation, 2001-2003
//
// File: KeySplineConverter.cs
//-----------------------------------------------------------------------------
// Allow suppression of certain presharp messages
#pragma warning disable 1634, 1691
using MS.Internal;
using System;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Globalization;
using System.Reflection;
using System.Windows.Media.Animation;
using System.Security;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows
{
///
/// PointConverter - Converter class for converting instances of other types to Point instances
///
///
public class KeySplineConverter : TypeConverter
{
///
/// CanConvertFrom - Returns whether or not this class can convert from a given type
///
///
public override bool CanConvertFrom(ITypeDescriptorContext typeDescriptor, Type destinationType)
{
if (destinationType == 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;
}
else
{
return false;
}
}
///
/// ConvertFrom
///
public override object ConvertFrom(
ITypeDescriptorContext context,
CultureInfo cultureInfo,
object value)
{
string stringValue = value as string;
if (value == null)
{
throw new NotSupportedException(SR.Get(SRID.Converter_ConvertFromNotSupported));
}
TokenizerHelper th = new TokenizerHelper(stringValue, cultureInfo);
return new KeySpline(
Convert.ToDouble(th.NextTokenRequired(), cultureInfo),
Convert.ToDouble(th.NextTokenRequired(), cultureInfo),
Convert.ToDouble(th.NextTokenRequired(), cultureInfo),
Convert.ToDouble(th.NextTokenRequired(), cultureInfo));
}
///
/// TypeConverter method implementation.
///
/// ITypeDescriptorContext
/// current culture (see CLR specs), null is a valid value
/// value to convert from
/// Type to convert to
/// converted value
///
///
/// Critical: calls InstanceDescriptor ctor which LinkDemands
/// PublicOK: can only make an InstanceDescriptor for KeySpline, not an arbitrary class
///
[SecurityCritical]
public override object ConvertTo(
ITypeDescriptorContext context,
CultureInfo cultureInfo,
object value,
Type destinationType)
{
KeySpline keySpline = value as KeySpline;
if (keySpline != null && destinationType != null)
{
if (destinationType == typeof(InstanceDescriptor))
{
ConstructorInfo ci = typeof(KeySpline).GetConstructor(new Type[]
{
typeof(double), typeof(double),
typeof(double), typeof(double)
});
return new InstanceDescriptor(ci, new object[]
{
keySpline.ControlPoint1.X, keySpline.ControlPoint1.Y,
keySpline.ControlPoint2.X, keySpline.ControlPoint2.Y
});
}
else if (destinationType == typeof(string))
{
#pragma warning disable 56506 // Suppress presharp warning: Parameter 'cultureInfo.TextInfo' to this public method must be validated: A null-dereference can occur here.
return String.Format(
cultureInfo,
"{0}{4}{1}{4}{2}{4}{3}",
keySpline.ControlPoint1.X,
keySpline.ControlPoint1.Y,
keySpline.ControlPoint2.X,
keySpline.ControlPoint2.Y,
cultureInfo != null ? cultureInfo.TextInfo.ListSeparator : CultureInfo.InvariantCulture.TextInfo.ListSeparator);
#pragma warning restore 56506
}
}
// Pass unhandled cases to base class (which will throw exceptions for null value or destinationType.)
return base.ConvertTo(context, cultureInfo, value, destinationType);
}
}
}
// 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
- XmlObjectSerializerWriteContextComplexJson.cs
- Effect.cs
- DecoderNLS.cs
- ActiveXHost.cs
- DataBoundControlActionList.cs
- CodeStatementCollection.cs
- RewritingSimplifier.cs
- TypeTypeConverter.cs
- DataAdapter.cs
- XmlEncoding.cs
- ProfileBuildProvider.cs
- login.cs
- WebPartPersonalization.cs
- Operators.cs
- InheritanceRules.cs
- TraceData.cs
- DocumentDesigner.cs
- printdlgexmarshaler.cs
- AssemblyUtil.cs
- FixUp.cs
- ShaderEffect.cs
- SecurityDescriptor.cs
- DesignerActionTextItem.cs
- Control.cs
- FormViewRow.cs
- DocumentApplicationJournalEntry.cs
- TextServicesPropertyRanges.cs
- ContentOperations.cs
- Application.cs
- Mapping.cs
- Latin1Encoding.cs
- TextBox.cs
- CrossSiteScriptingValidation.cs
- SaveFileDialog.cs
- AcceptorSessionSymmetricTransportSecurityProtocol.cs
- StaticSiteMapProvider.cs
- PropertyRef.cs
- ConfigurationProperty.cs
- SizeAnimationClockResource.cs
- ReadOnlyDictionary.cs
- FatalException.cs
- TransactionManager.cs
- OneWayChannelFactory.cs
- FilterException.cs
- InvalidOleVariantTypeException.cs
- DefaultTextStoreTextComposition.cs
- PrePostDescendentsWalker.cs
- DataTableMappingCollection.cs
- GlobalizationAssembly.cs
- BindUriHelper.cs
- EventLogger.cs
- ReadOnlyDictionary.cs
- SerializationTrace.cs
- WebConfigurationManager.cs
- MemberListBinding.cs
- MessageBox.cs
- MdiWindowListItemConverter.cs
- Label.cs
- HttpModulesSection.cs
- GridViewUpdateEventArgs.cs
- UnmanagedBitmapWrapper.cs
- TableColumn.cs
- XmlSchemaObjectTable.cs
- XsdBuilder.cs
- KeyInterop.cs
- Image.cs
- GetPageNumberCompletedEventArgs.cs
- SQLBytes.cs
- ClientEventManager.cs
- CachedFontFace.cs
- DirtyTextRange.cs
- KeyFrames.cs
- InsufficientMemoryException.cs
- BufferedGraphics.cs
- BinaryObjectInfo.cs
- DynamicMetaObjectBinder.cs
- StyleModeStack.cs
- WebColorConverter.cs
- ImageAttributes.cs
- EmptyControlCollection.cs
- Track.cs
- FontFamilyValueSerializer.cs
- GlobalizationAssembly.cs
- TextParagraph.cs
- XmlReaderSettings.cs
- ProfileEventArgs.cs
- xml.cs
- DrawingContextWalker.cs
- TemplateParser.cs
- IODescriptionAttribute.cs
- FileDetails.cs
- PageHandlerFactory.cs
- UnionCodeGroup.cs
- ListItemParagraph.cs
- EntitySetBaseCollection.cs
- EncryptedData.cs
- SoapDocumentMethodAttribute.cs
- ObjectItemCollection.cs
- EventSetter.cs
- Span.cs