Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Animation / KeySplineConverter.cs / 1305600 / 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
- SapiRecoContext.cs
- UrlMappingCollection.cs
- ExpressionUtilities.cs
- SelectedPathEditor.cs
- OracleParameter.cs
- ApplicationDirectory.cs
- ToolStripPanelSelectionBehavior.cs
- AdapterUtil.cs
- DataTableNewRowEvent.cs
- KeyValueConfigurationCollection.cs
- PerformanceCounterPermission.cs
- SmiMetaData.cs
- MessageQueueInstaller.cs
- TagPrefixInfo.cs
- DropShadowEffect.cs
- TrackingProfileSerializer.cs
- JavascriptXmlWriterWrapper.cs
- UnmanagedMemoryStreamWrapper.cs
- TypeConverterHelper.cs
- ExpressionReplacer.cs
- ToolStripContainerDesigner.cs
- DataServiceRequestArgs.cs
- TextViewSelectionProcessor.cs
- WebBrowserEvent.cs
- Window.cs
- HttpModuleActionCollection.cs
- ClassData.cs
- ConstraintStruct.cs
- XPathConvert.cs
- XmlSchemaParticle.cs
- OleDbRowUpdatingEvent.cs
- SplineKeyFrames.cs
- MarkerProperties.cs
- QueryableDataSourceEditData.cs
- CqlLexerHelpers.cs
- SqlBuilder.cs
- DataGridViewRowConverter.cs
- SplitterPanel.cs
- IRCollection.cs
- DispatcherFrame.cs
- SolidColorBrush.cs
- RTLAwareMessageBox.cs
- JoinQueryOperator.cs
- SchemaTypeEmitter.cs
- documentsequencetextview.cs
- AppDomainShutdownMonitor.cs
- PropertyPanel.cs
- HashAlgorithm.cs
- Activity.cs
- ScalarType.cs
- VectorAnimationUsingKeyFrames.cs
- CellLabel.cs
- ExceptionHandlersDesigner.cs
- HMACSHA384.cs
- SortExpressionBuilder.cs
- Int32RectConverter.cs
- CodeTryCatchFinallyStatement.cs
- DuplicateWaitObjectException.cs
- QuotedStringFormatReader.cs
- SqlCachedBuffer.cs
- SelectionRange.cs
- DynamicRendererThreadManager.cs
- FixedStringLookup.cs
- RangeContentEnumerator.cs
- ImageField.cs
- HtmlLink.cs
- ItemsChangedEventArgs.cs
- MdiWindowListStrip.cs
- ExecutionEngineException.cs
- AllowedAudienceUriElement.cs
- securitycriticaldata.cs
- MessageEventSubscriptionService.cs
- TableLayoutColumnStyleCollection.cs
- SimpleWorkerRequest.cs
- PrintDocument.cs
- CursorInteropHelper.cs
- SynchronousReceiveElement.cs
- SupportsEventValidationAttribute.cs
- CodePageUtils.cs
- MonitoringDescriptionAttribute.cs
- Policy.cs
- AtlasWeb.Designer.cs
- AppDomainInstanceProvider.cs
- ReadOnlyDictionary.cs
- RegexStringValidator.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- CustomExpression.cs
- CommandBindingCollection.cs
- FormsAuthenticationUserCollection.cs
- WebPartConnectionCollection.cs
- PrincipalPermission.cs
- ZipIOLocalFileHeader.cs
- DecoderFallbackWithFailureFlag.cs
- QueryOutputWriter.cs
- RtfControls.cs
- DummyDataSource.cs
- SqlUtils.cs
- TdsParameterSetter.cs
- ScriptHandlerFactory.cs
- CreateUserErrorEventArgs.cs