Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / OpacityConverter.cs / 1 / OpacityConverter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- /* */ namespace System.Windows.Forms { using System.Runtime.Serialization.Formatters; using System.Runtime.Remoting; using System.Runtime.InteropServices; using Microsoft.Win32; using System.Collections; using System.ComponentModel; using System.Diagnostics; using System.Globalization; using System.Reflection; ////// /// OpacityConverter is a class that can be used to convert /// opacity values from one data type to another. Access this /// class through the TypeDescriptor. /// public class OpacityConverter : TypeConverter { ////// /// Determines if this converter can convert an object in the given source /// type to the native type of the converter. /// public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) { if (sourceType == typeof(string)) { return true; } return base.CanConvertFrom(context, sourceType); } ////// /// Converts the given object to the converter's native type. /// public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { if (value is string) { string text = ((string)value).Replace('%', ' ').Trim(); double val = Double.Parse(text, CultureInfo.CurrentCulture); int indexOfPercent = ((string)value).IndexOf("%"); if (indexOfPercent > 0 && (val >= 0.0 && val <= 1.0)) { val /= 100.0; text = val.ToString(CultureInfo.CurrentCulture); } double percent = 1.0; try { percent = (double)TypeDescriptor.GetConverter(typeof(double)).ConvertFrom(context, culture, text); // assume they meant a percentage if it is > 1.0, else // they actually typed the correct double... // if (percent > 1.0) { percent /= 100.0; } } catch (FormatException e) { throw new FormatException(SR.GetString(SR.InvalidBoundArgument, "Opacity", text, "0%", "100%"), e); } // Now check to see if it is within our bounds. // if (percent < 0.0 || percent > 1.0) { throw new FormatException(SR.GetString(SR.InvalidBoundArgument, "Opacity", text, "0%", "100%")); } return percent; } return base.ConvertFrom(context, culture, value); } ////// /// Converts the given object to another type. The most common types to convert /// are to and from a string object. The default implementation will make a call /// to ToString on the object if the object is valid and if the destination /// type is string. If this cannot convert to the desitnation type, this will /// throw a NotSupportedException. /// public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == null) { throw new ArgumentNullException("destinationType"); } if (destinationType == typeof(string)) { double val = (double)value; int perc = (int)(val * 100.0); return perc.ToString(CultureInfo.CurrentCulture) + "%"; } return base.ConvertTo(context, culture, 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
- IntegrationExceptionEventArgs.cs
- LinkedResourceCollection.cs
- UrlAuthFailedErrorFormatter.cs
- WebPartMinimizeVerb.cs
- BaseTreeIterator.cs
- HttpApplication.cs
- SimpleBitVector32.cs
- BitStream.cs
- sapiproxy.cs
- GreenMethods.cs
- LogWriteRestartAreaAsyncResult.cs
- ModelChangedEventArgsImpl.cs
- TCPListener.cs
- ClientScriptManager.cs
- _SpnDictionary.cs
- AsyncOperationContext.cs
- DesignerFrame.cs
- FilterInvalidBodyAccessException.cs
- SetStateDesigner.cs
- TreeNodeBindingCollection.cs
- OleServicesContext.cs
- DigitShape.cs
- SettingsProperty.cs
- _BasicClient.cs
- KnownBoxes.cs
- Compiler.cs
- HtmlButton.cs
- PrimitiveType.cs
- HandlerWithFactory.cs
- SweepDirectionValidation.cs
- ServiceModelSecurityTokenRequirement.cs
- COAUTHIDENTITY.cs
- TemplateContentLoader.cs
- Identity.cs
- LoadWorkflowAsyncResult.cs
- WmlCommandAdapter.cs
- wmiprovider.cs
- ClientSettingsProvider.cs
- ListViewInsertedEventArgs.cs
- WorkflowInstanceExtensionCollection.cs
- CompletionCallbackWrapper.cs
- BrowsableAttribute.cs
- FixedSOMTable.cs
- ArgumentNullException.cs
- oledbmetadatacolumnnames.cs
- CapabilitiesState.cs
- SQLDecimalStorage.cs
- MetaForeignKeyColumn.cs
- Point4DConverter.cs
- BufferedWebEventProvider.cs
- DelegatedStream.cs
- MetadataExporter.cs
- Splitter.cs
- TextTreeTextBlock.cs
- NativeWindow.cs
- UmAlQuraCalendar.cs
- ContextMarshalException.cs
- TransactionContext.cs
- SoapCommonClasses.cs
- Polygon.cs
- GradientStop.cs
- FixedSOMGroup.cs
- ToolstripProfessionalRenderer.cs
- SerialErrors.cs
- XamlBrushSerializer.cs
- TransactionScopeDesigner.cs
- ReadOnlyDataSource.cs
- ResXFileRef.cs
- EmptyQuery.cs
- control.ime.cs
- Monitor.cs
- PackageRelationshipSelector.cs
- FilteredReadOnlyMetadataCollection.cs
- X509RecipientCertificateClientElement.cs
- CLRBindingWorker.cs
- ConfigurationException.cs
- XmlComment.cs
- DocumentPageTextView.cs
- RequestSecurityTokenResponseCollection.cs
- BitmapCodecInfo.cs
- ApplicationHost.cs
- FileIOPermission.cs
- EntitySqlQueryBuilder.cs
- TrimSurroundingWhitespaceAttribute.cs
- ElementAction.cs
- SystemIdentity.cs
- SessionParameter.cs
- entitydatasourceentitysetnameconverter.cs
- ItemTypeToolStripMenuItem.cs
- MarginCollapsingState.cs
- LowerCaseStringConverter.cs
- DSGeneratorProblem.cs
- IgnoreFileBuildProvider.cs
- WebRequestModuleElement.cs
- RemoteDebugger.cs
- DrawingCollection.cs
- CharAnimationBase.cs
- listitem.cs
- ExceptionUtil.cs
- Compiler.cs