Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Designer / WinForms / System / WinForms / Design / ImageListImageEditor.cs / 1 / ImageListImageEditor.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms.Design { using System.Runtime.InteropServices; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System; using System.IO; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Drawing; using System.Design; using System.Reflection; using System.Drawing.Design; using System.Windows.Forms.ComponentModel; ////// /// public class ImageListImageEditor : ImageEditor { // VSWhidbey 95227: Metafile types are not supported in the ImageListImageEditor and should // not be displayed as an option. internal static Type[] imageExtenders = new Type[] { typeof(BitmapEditor)/*, gpr typeof(Icon), typeof(MetafileEditor)*/}; private OpenFileDialog fileDialog = null; // VSWhidbey 95227: accessor needed into the static field so that derived classes // can implement a different list of supported image types. [SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] // everything in this assembly is full trust. protected override Type[] GetImageExtenders() { return imageExtenders; } ///Provides an editor that can perform default file searching for bitmap (.bmp) /// files. ////// /// Edits the given object value using the editor style provided by /// GetEditorStyle. A service provider is provided so that any /// required editing services can be obtained. /// [SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] // everything in this assembly is full trust. public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { ArrayList images = new ArrayList(); if (provider != null) { IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); if (edSvc != null) { if (fileDialog == null) { fileDialog = new OpenFileDialog(); fileDialog.Multiselect = true; string filter = CreateFilterEntry(this); for (int i = 0; i < GetImageExtenders().Length; i++) { ImageEditor e = (ImageEditor) Activator.CreateInstance(GetImageExtenders()[i], BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.CreateInstance, null, null, null); //.CreateInstance(); Type myClass = this.GetType(); Type editorClass = e.GetType(); if (!myClass.Equals(editorClass) && e != null && myClass.IsInstanceOfType(e)) filter += "|" + CreateFilterEntry(e); } fileDialog.Filter = filter; } IntPtr hwndFocus = UnsafeNativeMethods.GetFocus(); try { if (fileDialog.ShowDialog() == DialogResult.OK) { foreach (string name in fileDialog.FileNames) { ImageListImage image; FileStream file = new FileStream(name, FileMode.Open, FileAccess.Read, FileShare.Read); image = LoadImageFromStream(file, name.EndsWith(".ico")); image.Name = System.IO.Path.GetFileName(name); images.Add(image); } } } finally { if (hwndFocus != IntPtr.Zero) { UnsafeNativeMethods.SetFocus(new HandleRef(null, hwndFocus)); } } } return images; } return value; } ////// /// [SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] // everything in this assembly is full trust. protected override string GetFileDialogDescription() { return SR.GetString(SR.imageFileDescription); } ///[To be supplied.] ////// /// Determines if this editor supports the painting of a representation /// of an object's value. /// [SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] // everything in this assembly is full trust. public override bool GetPaintValueSupported(ITypeDescriptorContext context) { return true; } ////// /// private ImageListImage LoadImageFromStream(Stream stream, bool imageIsIcon) { //Copy the original stream to a buffer, then wrap a //memory stream around it. This way we can avoid //locking the file byte[] buffer = new byte[stream.Length]; stream.Read(buffer, 0, (int)stream.Length); MemoryStream ms = new MemoryStream(buffer); return (ImageListImage)ImageListImage.ImageListImageFromStream(ms, imageIsIcon); } ///[To be supplied.] ////// /// [SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")] // everything in this assembly is full trust. public override void PaintValue(PaintValueEventArgs e) { if (e.Value is ImageListImage) { e= new PaintValueEventArgs(e.Context, ((ImageListImage)e.Value).Image, e.Graphics, e.Bounds); } base.PaintValue(e); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved./// Paints a representative value of the given object to the provided /// canvas. Painting should be done within the boundaries of the /// provided rectangle. /// ///
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SymbolPair.cs
- _UncName.cs
- EntityProxyTypeInfo.cs
- HighlightComponent.cs
- NamespaceDecl.cs
- PnrpPeerResolver.cs
- SqlProviderServices.cs
- EastAsianLunisolarCalendar.cs
- TcpHostedTransportConfiguration.cs
- ReferenceEqualityComparer.cs
- HtmlInputHidden.cs
- MergeFilterQuery.cs
- TransactionFlowAttribute.cs
- MappingMetadataHelper.cs
- DropTarget.cs
- GiveFeedbackEvent.cs
- Roles.cs
- ObjRef.cs
- webproxy.cs
- BamlLocalizer.cs
- RoutedPropertyChangedEventArgs.cs
- PixelFormatConverter.cs
- SqlCommandBuilder.cs
- BitmapFrame.cs
- PathSegmentCollection.cs
- SqlCommand.cs
- OleDbInfoMessageEvent.cs
- Line.cs
- DataBindEngine.cs
- TypeValidationEventArgs.cs
- ResourceDisplayNameAttribute.cs
- CqlErrorHelper.cs
- NonVisualControlAttribute.cs
- XhtmlBasicValidatorAdapter.cs
- CounterCreationData.cs
- Type.cs
- StandardOleMarshalObject.cs
- HttpStreamMessageEncoderFactory.cs
- GuidTagList.cs
- BitmapEffectInput.cs
- PersonalizationStateInfo.cs
- X509Extension.cs
- SqlAliaser.cs
- SkinBuilder.cs
- WindowHideOrCloseTracker.cs
- MsmqTransportBindingElement.cs
- DataRecord.cs
- SequentialOutput.cs
- ObjectTag.cs
- StrongNameSignatureInformation.cs
- SafeFileMappingHandle.cs
- MessageSecurityOverMsmq.cs
- CTreeGenerator.cs
- XPathBuilder.cs
- PageParserFilter.cs
- KeyInstance.cs
- WebBrowserEvent.cs
- FileUpload.cs
- InfocardClientCredentials.cs
- ConstructorNeedsTagAttribute.cs
- DataGridViewCellValidatingEventArgs.cs
- PerformanceCounterPermission.cs
- WsdlImporterElementCollection.cs
- CodeStatementCollection.cs
- ConsumerConnectionPointCollection.cs
- EndOfStreamException.cs
- EncryptedType.cs
- NotificationContext.cs
- ProfileServiceManager.cs
- ComEventsInfo.cs
- QueryContinueDragEventArgs.cs
- UICuesEvent.cs
- OracleEncoding.cs
- TimeSpanConverter.cs
- ObjectMaterializedEventArgs.cs
- BCryptHashAlgorithm.cs
- RootDesignerSerializerAttribute.cs
- SqlDataSourceParameterParser.cs
- ExceptionRoutedEventArgs.cs
- ZipFileInfoCollection.cs
- CodeExporter.cs
- TagMapInfo.cs
- TokenBasedSetEnumerator.cs
- SelectionItemPattern.cs
- PackagingUtilities.cs
- SwitchExpression.cs
- TCEAdapterGenerator.cs
- GenericParameterDataContract.cs
- ExtendedProtectionPolicyElement.cs
- NamedPipeTransportManager.cs
- MetadataItemSerializer.cs
- RouteParser.cs
- XamlParser.cs
- XamlInt32CollectionSerializer.cs
- XmlObjectSerializerWriteContext.cs
- RelativeSource.cs
- LightweightCodeGenerator.cs
- TextServicesCompartment.cs
- HierarchicalDataBoundControl.cs
- DocumentViewerAutomationPeer.cs