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
- WpfKnownMember.cs
- DataGridClipboardCellContent.cs
- WpfWebRequestHelper.cs
- Freezable.cs
- SynchronizedInputAdaptor.cs
- ControlCollection.cs
- TextTrailingWordEllipsis.cs
- SafeNativeMethods.cs
- WmfPlaceableFileHeader.cs
- EpmContentSerializerBase.cs
- EncryptedPackage.cs
- NameObjectCollectionBase.cs
- ToolBarPanel.cs
- odbcmetadatacollectionnames.cs
- SpeakInfo.cs
- DocumentApplicationJournalEntry.cs
- _BufferOffsetSize.cs
- BinaryObjectWriter.cs
- AnnotationStore.cs
- RectangleGeometry.cs
- CapabilitiesUse.cs
- NameValueConfigurationCollection.cs
- AutomationTextAttribute.cs
- SamlAuthorityBinding.cs
- PerformanceCounterPermission.cs
- COM2Properties.cs
- followingsibling.cs
- XmlSerializerFactory.cs
- OleDbException.cs
- RemotingException.cs
- SortableBindingList.cs
- WebProxyScriptElement.cs
- SqlEnums.cs
- TraceEventCache.cs
- ExpressionBindingCollection.cs
- MouseCaptureWithinProperty.cs
- Internal.cs
- MenuItemAutomationPeer.cs
- ProcessingInstructionAction.cs
- XmlUtf8RawTextWriter.cs
- ItemsControl.cs
- PackageRelationshipSelector.cs
- TableDesigner.cs
- Win32KeyboardDevice.cs
- coordinator.cs
- RefreshPropertiesAttribute.cs
- TableItemPatternIdentifiers.cs
- SplitContainer.cs
- OperationBehaviorAttribute.cs
- Point4D.cs
- DocumentViewerBaseAutomationPeer.cs
- SafeNativeMethods.cs
- ToolboxItemCollection.cs
- PointHitTestResult.cs
- DispatcherHookEventArgs.cs
- UrlEncodedParameterWriter.cs
- ArgIterator.cs
- DynamicResourceExtension.cs
- ResourceReferenceExpressionConverter.cs
- XsltInput.cs
- Underline.cs
- DataBoundControl.cs
- JapaneseLunisolarCalendar.cs
- TargetException.cs
- EditorPart.cs
- PixelShader.cs
- RecognizerInfo.cs
- Vector3DAnimationUsingKeyFrames.cs
- CodeTypeReferenceCollection.cs
- OutputCacheSection.cs
- PrintPreviewControl.cs
- DataGridViewColumnHeaderCell.cs
- Merger.cs
- EventDescriptor.cs
- SchemaElement.cs
- FontStyleConverter.cs
- WinInetCache.cs
- ChildTable.cs
- LocalizableAttribute.cs
- ManifestSignatureInformation.cs
- Wizard.cs
- ProtocolProfile.cs
- MemoryRecordBuffer.cs
- XmlNodeList.cs
- StorageFunctionMapping.cs
- HttpCacheVary.cs
- processwaithandle.cs
- XmlConvert.cs
- GeneralTransform3DGroup.cs
- ModuleElement.cs
- X509Extension.cs
- ResourceReferenceExpressionConverter.cs
- CheckBoxFlatAdapter.cs
- WebSysDisplayNameAttribute.cs
- ParameterToken.cs
- KeyFrames.cs
- DataRowView.cs
- SynchronizedDispatch.cs
- CombinedGeometry.cs
- KnownBoxes.cs