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
- EntityDataSourceSelectedEventArgs.cs
- GetWinFXPath.cs
- Permission.cs
- DataSvcMapFile.cs
- DBSchemaRow.cs
- RoutedEventConverter.cs
- LayoutEditorPart.cs
- LoginName.cs
- CultureInfo.cs
- DesignerWidgets.cs
- Bitmap.cs
- Html32TextWriter.cs
- LambdaCompiler.Unary.cs
- UInt16.cs
- MailAddressCollection.cs
- Connection.cs
- SystemColors.cs
- Stroke2.cs
- TextAdaptor.cs
- ObjectContext.cs
- FrameAutomationPeer.cs
- EntityDescriptor.cs
- ObjectFullSpanRewriter.cs
- GuidConverter.cs
- Property.cs
- Identifier.cs
- RuleInfoComparer.cs
- WebServiceTypeData.cs
- OdbcConnectionString.cs
- SerialReceived.cs
- DecimalConverter.cs
- DictationGrammar.cs
- SubstitutionDesigner.cs
- DesignerProperties.cs
- DesignerGeometryHelper.cs
- OleDbConnectionFactory.cs
- Material.cs
- PreloadedPackages.cs
- MsmqIntegrationBinding.cs
- FamilyCollection.cs
- CompositeDataBoundControl.cs
- HtmlElementErrorEventArgs.cs
- CookieParameter.cs
- IntSumAggregationOperator.cs
- MetadataCacheItem.cs
- EntryPointNotFoundException.cs
- TimersDescriptionAttribute.cs
- ApplicationFileParser.cs
- Regex.cs
- StateDesigner.CommentLayoutGlyph.cs
- SmtpDigestAuthenticationModule.cs
- ThaiBuddhistCalendar.cs
- ListControl.cs
- IERequestCache.cs
- ConfigXmlSignificantWhitespace.cs
- glyphs.cs
- UnsafeNativeMethods.cs
- MultipleCopiesCollection.cs
- Exceptions.cs
- followingsibling.cs
- CriticalFinalizerObject.cs
- DecoderNLS.cs
- CodeArrayIndexerExpression.cs
- TdsRecordBufferSetter.cs
- XmlEntity.cs
- LinqDataSourceEditData.cs
- PageBreakRecord.cs
- TdsParserStaticMethods.cs
- ReflectionUtil.cs
- Polyline.cs
- BitmapEffectGroup.cs
- SharedConnectionWorkflowTransactionService.cs
- DbUpdateCommandTree.cs
- EventManager.cs
- SqlTypeSystemProvider.cs
- CatchDesigner.xaml.cs
- MediaPlayer.cs
- CompareValidator.cs
- BaseDataList.cs
- PeerNameRecordCollection.cs
- DataGridViewBand.cs
- FormViewInsertedEventArgs.cs
- ActivityTypeDesigner.xaml.cs
- XNameTypeConverter.cs
- PageBreakRecord.cs
- AutomationProperty.cs
- SqlDataSourceDesigner.cs
- XamlTreeBuilderBamlRecordWriter.cs
- TcpServerChannel.cs
- HashCodeCombiner.cs
- ADMembershipUser.cs
- PagesChangedEventArgs.cs
- SchemaTableOptionalColumn.cs
- DefaultValueTypeConverter.cs
- WsatServiceCertificate.cs
- SingleAnimationBase.cs
- InputScopeConverter.cs
- DataServiceRequestOfT.cs
- ChangeProcessor.cs
- WebPartHelpVerb.cs