Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- EncoderBestFitFallback.cs
- Converter.cs
- SHA512Managed.cs
- COM2ExtendedBrowsingHandler.cs
- Geometry3D.cs
- EntityContainerEntitySetDefiningQuery.cs
- MarkupProperty.cs
- FilteredDataSetHelper.cs
- HttpModuleAction.cs
- WpfWebRequestHelper.cs
- UntypedNullExpression.cs
- DefaultAuthorizationContext.cs
- GridViewColumnHeaderAutomationPeer.cs
- SoapExtensionTypeElement.cs
- UserInitiatedRoutedEventPermission.cs
- AppDomainUnloadedException.cs
- DataFieldConverter.cs
- Button.cs
- SymmetricAlgorithm.cs
- BufferedGraphicsManager.cs
- NativeCppClassAttribute.cs
- HttpRuntimeSection.cs
- WorkflowInstanceSuspendedRecord.cs
- WebPartEditorApplyVerb.cs
- EventsTab.cs
- DbgCompiler.cs
- SharedConnectionInfo.cs
- VirtualPath.cs
- WmpBitmapDecoder.cs
- ReadOnlyHierarchicalDataSource.cs
- PartitionedDataSource.cs
- Table.cs
- ReaderWriterLockWrapper.cs
- SqlInternalConnectionSmi.cs
- WinFormsSpinner.cs
- XmlILCommand.cs
- EntitySet.cs
- AnonymousIdentificationModule.cs
- DesignerProperties.cs
- XmlCharType.cs
- DirectoryObjectSecurity.cs
- Msec.cs
- CellConstant.cs
- SubclassTypeValidator.cs
- Misc.cs
- DependencyProperty.cs
- HtmlEmptyTagControlBuilder.cs
- CodeSubDirectory.cs
- SizeFConverter.cs
- WorkflowApplicationAbortedEventArgs.cs
- DesignerCommandAdapter.cs
- ReachPageContentCollectionSerializerAsync.cs
- Typography.cs
- PageCatalogPart.cs
- CreateParams.cs
- HttpModuleCollection.cs
- SetterBaseCollection.cs
- ObjectStateEntry.cs
- ResourcesBuildProvider.cs
- HtmlInputCheckBox.cs
- WebPartConnectionsDisconnectVerb.cs
- ReadOnlyHierarchicalDataSourceView.cs
- VariableValue.cs
- PathSegment.cs
- HttpCachePolicy.cs
- TreeViewEvent.cs
- httpserverutility.cs
- NativeWrapper.cs
- DocumentViewerConstants.cs
- SymLanguageVendor.cs
- HttpListenerRequestUriBuilder.cs
- ListView.cs
- EmptyStringExpandableObjectConverter.cs
- StandardCommandToolStripMenuItem.cs
- ListBoxItemAutomationPeer.cs
- EventItfInfo.cs
- LicenseProviderAttribute.cs
- Debug.cs
- TokenizerHelper.cs
- XmlSchemaIdentityConstraint.cs
- PageStatePersister.cs
- XmlAnyElementAttributes.cs
- Parameter.cs
- DataListItemEventArgs.cs
- TypefaceMetricsCache.cs
- DataTablePropertyDescriptor.cs
- WebPartVerbsEventArgs.cs
- ApplicationInterop.cs
- ChtmlCalendarAdapter.cs
- CFStream.cs
- Error.cs
- ValueType.cs
- BamlTreeNode.cs
- XmlHierarchicalEnumerable.cs
- GenericNameHandler.cs
- InitiatorSessionSymmetricTransportSecurityProtocol.cs
- SystemGatewayIPAddressInformation.cs
- ListViewPagedDataSource.cs
- ExtentKey.cs
- Int16AnimationBase.cs