Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- metrodevice.cs
- SingleResultAttribute.cs
- ParenthesizePropertyNameAttribute.cs
- Icon.cs
- AsyncOperationContext.cs
- Command.cs
- ConnectionProviderAttribute.cs
- Psha1DerivedKeyGenerator.cs
- ThreadInterruptedException.cs
- DispatcherTimer.cs
- EventHandlerList.cs
- TemplateBindingExtension.cs
- DeferredSelectedIndexReference.cs
- WebZone.cs
- AppModelKnownContentFactory.cs
- HitTestParameters.cs
- UnknownWrapper.cs
- Token.cs
- DesignerView.cs
- DataGridViewComboBoxColumn.cs
- MobileRedirect.cs
- PeerCollaborationPermission.cs
- BinaryQueryOperator.cs
- ErrorRuntimeConfig.cs
- FamilyCollection.cs
- KeyedCollection.cs
- Int16AnimationUsingKeyFrames.cs
- FormViewRow.cs
- PathParser.cs
- OLEDB_Util.cs
- PassportAuthenticationModule.cs
- DataGridCaption.cs
- OutputCacheProfileCollection.cs
- ManagementDateTime.cs
- VerificationAttribute.cs
- DataGridState.cs
- GridSplitterAutomationPeer.cs
- ResolveCriteria11.cs
- TransportManager.cs
- CodeLinePragma.cs
- CompositeControl.cs
- ExpressionEvaluator.cs
- CodePropertyReferenceExpression.cs
- CustomSignedXml.cs
- _SpnDictionary.cs
- Tile.cs
- DoubleLinkList.cs
- PkcsMisc.cs
- LocatorPart.cs
- XmlAnyElementAttribute.cs
- SchemaElementLookUpTable.cs
- DesignerActionService.cs
- ProfileManager.cs
- KoreanCalendar.cs
- ToolStripGripRenderEventArgs.cs
- XmlSerializerNamespaces.cs
- HostUtils.cs
- RecordsAffectedEventArgs.cs
- MergePropertyDescriptor.cs
- StoreAnnotationsMap.cs
- RemotingConfiguration.cs
- ExceptionValidationRule.cs
- HtmlElementErrorEventArgs.cs
- DesignerTextViewAdapter.cs
- RegexTypeEditor.cs
- EntityTypeEmitter.cs
- OrCondition.cs
- ArrayList.cs
- CompositionTarget.cs
- KeyManager.cs
- XPathDocumentNavigator.cs
- InternalCache.cs
- CanonicalizationDriver.cs
- ResourceAssociationSet.cs
- PageBuildProvider.cs
- JsonFormatGeneratorStatics.cs
- CookieProtection.cs
- Control.cs
- SqlBulkCopy.cs
- ZipIOLocalFileBlock.cs
- Environment.cs
- ExclusiveHandle.cs
- DataGridColumnCollectionEditor.cs
- CodeDomComponentSerializationService.cs
- Literal.cs
- ListItemCollection.cs
- mda.cs
- AsyncContentLoadedEventArgs.cs
- OleDbStruct.cs
- SqlFactory.cs
- StateItem.cs
- DesignerTransactionCloseEvent.cs
- StatusBarItem.cs
- PagesChangedEventArgs.cs
- RefreshEventArgs.cs
- _Connection.cs
- DefaultBinder.cs
- ImageEditor.cs
- DesignerCapabilities.cs
- SupportsEventValidationAttribute.cs