/// <summary> /// Fetches an image of the requested size. /// </summary> /// <param name="size">Size of image to obtain.</param> /// <returns>If supported, returns requested image. A value of null /// indicates that the requested size is not supported.</returns> public virtual Image GetImage(SEToolStripImageSize size) { if (DefaultImageProvider == null) { throw new NullReferenceException(); } if (DefaultImageProvider == this) { Size iconSize = SEToolStripIconImageProvider.GetIconSize(size); Bitmap icon = new Bitmap(16, 16); Icon iconResult = new Icon(DrawingTool.ImageToIcon(icon), iconSize); return(iconResult.ToBitmap()); } return(DefaultImageProvider.GetImage(size)); }
/// <summary> /// Forces all images sizes to be refreshed from the respective providers. /// </summary> protected void RefreshItemImages() { Size imageSize = SEToolStripIconImageProvider.GetIconSize(ImageSize); ImageScalingSize = imageSize; bool changesMade = false; ISEToolStripImageProvider imageProvider = null; foreach (ToolStripItem item in Items) { if (item.Size != imageSize) { imageProvider = null; // If an image provider was registered with the toolstrip then... if (ContainsImage(item)) { if (IsImageSupported(item, ImageSize)) { item.Image = GetImage(item, ImageSize); } else if (UseUnknownImageSizeIcon && IsImageSupported(ImageSize)) { item.Image = GetImage(ImageSize); } changesMade = true; } else if (item is ISEToolStripImageProvider) { imageProvider = item as ISEToolStripImageProvider; } else if (item.Tag is ISEToolStripImageProvider) { imageProvider = item.Tag as ISEToolStripImageProvider; } // If an alternative image provider was found, attempt to use that. if (!changesMade && imageProvider != null) { if (imageProvider.IsImageSupported(ImageSize)) { item.Image = imageProvider.GetImage(ImageSize); changesMade = true; } } // Were changes made? if (changesMade) { // Automatically adjust the image scaling mode. if (item.Image != null && item.Image.Size == imageSize) { item.ImageScaling = ToolStripItemImageScaling.None; } else { item.ImageScaling = ToolStripItemImageScaling.SizeToFit; } } } } }
/// <summary> /// Fetches an image of the requested size. /// </summary> /// <param name="size">Size of image to obtain.</param> /// <returns>If supported, returns requested image. A value of null /// indicates that the requested size is not supported.</returns> public Image GetImage(SEToolStripImageSize size) { Icon desiredSize = new Icon(SourceIcon, SEToolStripIconImageProvider.GetIconSize(size)); return(desiredSize.ToBitmap()); }