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
- SafeEventLogReadHandle.cs
- Attributes.cs
- HttpCachePolicy.cs
- OutputCacheSettings.cs
- ReadOnlyHierarchicalDataSourceView.cs
- SignatureConfirmationElement.cs
- SiteMapDataSource.cs
- SystemDiagnosticsSection.cs
- NullableDecimalMinMaxAggregationOperator.cs
- CustomLineCap.cs
- ArgIterator.cs
- ColumnMapTranslator.cs
- TextSelectionHighlightLayer.cs
- ContainerActivationHelper.cs
- HandleDictionary.cs
- ColorContextHelper.cs
- SweepDirectionValidation.cs
- AsnEncodedData.cs
- HtmlAnchor.cs
- FacetDescriptionElement.cs
- SmiRecordBuffer.cs
- DataGridViewRow.cs
- Stroke2.cs
- WebMessageFormatHelper.cs
- XmlSignificantWhitespace.cs
- UserControlCodeDomTreeGenerator.cs
- NGCPageContentCollectionSerializerAsync.cs
- InheritanceContextHelper.cs
- HtmlControl.cs
- DesigntimeLicenseContext.cs
- CodePropertyReferenceExpression.cs
- FormsAuthenticationConfiguration.cs
- ParameterModifier.cs
- TextTreeNode.cs
- ScriptRef.cs
- CommandDesigner.cs
- WmlPanelAdapter.cs
- DataGridLength.cs
- SoapServerMethod.cs
- DesignerActionMethodItem.cs
- ActiveXContainer.cs
- ConsoleCancelEventArgs.cs
- AspNetCompatibilityRequirementsAttribute.cs
- IsolatedStorageFilePermission.cs
- SQlBooleanStorage.cs
- SmiEventSink_DeferedProcessing.cs
- UniformGrid.cs
- ShaperBuffers.cs
- SqlDataSourceCommandEventArgs.cs
- PageBreakRecord.cs
- WebServiceBindingAttribute.cs
- EdmItemError.cs
- FrameworkReadOnlyPropertyMetadata.cs
- AjaxFrameworkAssemblyAttribute.cs
- ApplicationProxyInternal.cs
- XmlCDATASection.cs
- TdsParameterSetter.cs
- SqlDataSourceParameterParser.cs
- XamlWriter.cs
- VideoDrawing.cs
- DecimalKeyFrameCollection.cs
- UpdatableWrapper.cs
- StringUtil.cs
- Shape.cs
- PackagingUtilities.cs
- ServerIdentity.cs
- EncoderBestFitFallback.cs
- VirtualPath.cs
- DesignerTextWriter.cs
- M3DUtil.cs
- TextDpi.cs
- Application.cs
- VectorCollectionValueSerializer.cs
- XamlVector3DCollectionSerializer.cs
- MetadataCacheItem.cs
- DependencyObjectType.cs
- NativeBuffer.cs
- TextServicesCompartmentContext.cs
- ErrorWrapper.cs
- CompositeActivityCodeGenerator.cs
- ConstructorArgumentAttribute.cs
- NotSupportedException.cs
- DataTrigger.cs
- HtmlWindowCollection.cs
- OdbcConnectionFactory.cs
- CompiledXpathExpr.cs
- SystemDiagnosticsSection.cs
- EntityDesignerBuildProvider.cs
- UICuesEvent.cs
- DrawingAttributeSerializer.cs
- StrongName.cs
- ClientRolePrincipal.cs
- EdmSchemaAttribute.cs
- AsymmetricSignatureDeformatter.cs
- AddInSegmentDirectoryNotFoundException.cs
- TrueReadOnlyCollection.cs
- EntityDataSourceChangingEventArgs.cs
- CellCreator.cs
- ThreadAbortException.cs
- QueryValue.cs