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
- base64Transforms.cs
- AutoGeneratedFieldProperties.cs
- WebBrowserSiteBase.cs
- TripleDESCryptoServiceProvider.cs
- HandoffBehavior.cs
- FixedSOMTable.cs
- PackageRelationshipCollection.cs
- RunInstallerAttribute.cs
- DbConnectionOptions.cs
- InputLanguageEventArgs.cs
- ModuleBuilder.cs
- GiveFeedbackEventArgs.cs
- NullPackagingPolicy.cs
- TypeValidationEventArgs.cs
- XmlResolver.cs
- FieldToken.cs
- PathFigure.cs
- DataGridViewIntLinkedList.cs
- AsyncOperationManager.cs
- CollectionChangeEventArgs.cs
- _OSSOCK.cs
- PixelShader.cs
- XmlSchemaComplexContentRestriction.cs
- FileUtil.cs
- PolicyStatement.cs
- TextTreeDeleteContentUndoUnit.cs
- VersionValidator.cs
- SafeRightsManagementQueryHandle.cs
- ListBoxItem.cs
- WindowsAuthenticationModule.cs
- ProtectedProviderSettings.cs
- ArraySortHelper.cs
- columnmapfactory.cs
- DrawListViewItemEventArgs.cs
- SessionEndedEventArgs.cs
- Stream.cs
- SqlCacheDependencySection.cs
- DataSourceCache.cs
- NeutralResourcesLanguageAttribute.cs
- RemoteWebConfigurationHost.cs
- ThreadWorkerController.cs
- CodeExporter.cs
- DeleteWorkflowOwnerCommand.cs
- ByteStack.cs
- RecipientInfo.cs
- TransferMode.cs
- ClientSettingsProvider.cs
- WindowsPrincipal.cs
- ItemMap.cs
- HwndKeyboardInputProvider.cs
- LayoutTable.cs
- MemberDomainMap.cs
- MembershipAdapter.cs
- PointLightBase.cs
- FrameworkRichTextComposition.cs
- GenericUriParser.cs
- XmlQuerySequence.cs
- PngBitmapEncoder.cs
- GridViewAutomationPeer.cs
- ScrollBar.cs
- HostedNamedPipeTransportManager.cs
- PresentationAppDomainManager.cs
- HtmlInputRadioButton.cs
- TreeNodeStyle.cs
- ViewSimplifier.cs
- XMLSyntaxException.cs
- EnumConverter.cs
- DependencyPropertyHelper.cs
- ProfileBuildProvider.cs
- TextElement.cs
- FormsAuthenticationUserCollection.cs
- MergeLocalizationDirectives.cs
- GridViewSortEventArgs.cs
- ConstructorExpr.cs
- TemplateKeyConverter.cs
- Types.cs
- CommonDialog.cs
- ToolStripHighContrastRenderer.cs
- ServiceOperation.cs
- RotateTransform3D.cs
- DesignerActionUIService.cs
- GridViewCancelEditEventArgs.cs
- TextModifierScope.cs
- FtpWebResponse.cs
- LeafCellTreeNode.cs
- DbgCompiler.cs
- SortKey.cs
- ComponentSerializationService.cs
- IntSecurity.cs
- SmtpCommands.cs
- DataGridViewAutoSizeModeEventArgs.cs
- ListBindableAttribute.cs
- InvokeProviderWrapper.cs
- odbcmetadatacollectionnames.cs
- CodeExpressionCollection.cs
- ThreadSafeMessageFilterTable.cs
- FixedTextView.cs
- OdbcConnectionStringbuilder.cs
- MachineKey.cs
- ConnectorRouter.cs