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
- FormViewDeleteEventArgs.cs
- ConfigurationCollectionAttribute.cs
- UInt32.cs
- NegotiationTokenAuthenticatorState.cs
- RsaSecurityToken.cs
- DecodeHelper.cs
- XmlNodeReader.cs
- WindowsGraphicsCacheManager.cs
- Attributes.cs
- TreeNodeStyleCollection.cs
- TraceSection.cs
- TableAdapterManagerMethodGenerator.cs
- ProfilePropertyNameValidator.cs
- ApplicationServiceManager.cs
- IDReferencePropertyAttribute.cs
- QilList.cs
- Win32SafeHandles.cs
- WindowsButton.cs
- ParagraphVisual.cs
- SharedPerformanceCounter.cs
- UnmanagedMarshal.cs
- BaseParser.cs
- ValidationError.cs
- EntityDataSourceDesignerHelper.cs
- Slider.cs
- Not.cs
- XmlQueryContext.cs
- IgnoreDeviceFilterElement.cs
- SplitContainerDesigner.cs
- GotoExpression.cs
- dsa.cs
- CompositeTypefaceMetrics.cs
- DispatcherHooks.cs
- Tuple.cs
- ExpressionBuilderCollection.cs
- BindStream.cs
- designeractionbehavior.cs
- ViewBox.cs
- HyperLinkDesigner.cs
- Vector3DCollection.cs
- ServicesUtilities.cs
- KeyboardEventArgs.cs
- Configuration.cs
- Menu.cs
- XmlNamedNodeMap.cs
- WebPartManagerInternals.cs
- WmlObjectListAdapter.cs
- DispatcherExceptionEventArgs.cs
- PlatformNotSupportedException.cs
- ResXFileRef.cs
- SoapTypeAttribute.cs
- TableCellAutomationPeer.cs
- StandardBindingOptionalReliableSessionElement.cs
- ZoneLinkButton.cs
- EmbeddedObject.cs
- SoapFormatExtensions.cs
- LongValidator.cs
- Script.cs
- Point3DCollectionConverter.cs
- ReliableInputConnection.cs
- TextLine.cs
- SimpleHandlerBuildProvider.cs
- ReversePositionQuery.cs
- CodeValidator.cs
- ProxyFragment.cs
- Compress.cs
- SchemaNames.cs
- PcmConverter.cs
- DbMetaDataFactory.cs
- FontUnit.cs
- ThousandthOfEmRealPoints.cs
- BufferedConnection.cs
- FixedSOMPage.cs
- BindingCollection.cs
- RoleGroupCollection.cs
- DbConnectionClosed.cs
- DocumentSequence.cs
- Viewport3DAutomationPeer.cs
- LayoutEngine.cs
- Bold.cs
- Descriptor.cs
- HttpWebRequestElement.cs
- ExpressionDumper.cs
- ImageMapEventArgs.cs
- BinaryKeyIdentifierClause.cs
- SpAudioStreamWrapper.cs
- MailWebEventProvider.cs
- StrokeIntersection.cs
- XmlReader.cs
- SchemaCollectionCompiler.cs
- WebFormDesignerActionService.cs
- SourceSwitch.cs
- ResetableIterator.cs
- IndentTextWriter.cs
- MappingModelBuildProvider.cs
- MonthChangedEventArgs.cs
- DuplicateMessageDetector.cs
- SiteMapNodeItem.cs
- Grant.cs
- LoginDesigner.cs