Tweets by @Actipro
Please take some time to learn more about us and our product offerings.
We recently released our Actipro Icons product that is a huge bundle of some of the most professionally-designed bitmap icons that you’ll find on the web. Actipro Icons includes over 1,750 unique icon designs. Each design comes in 16x16 and 32x32 sizes, normal, hot, and disabled states, and is available in alpha-blended PNG and Icon formats.
View our initial blog post about Actipro Icons
Following the release of Actipro Icons, we’ve had a handful of customers (mostly our WPF Studio customers) asking for XAML-based icons.
I’d like to talk a bit about XAML icons and more importantly, to get your feedback. We want to know what you’d like to see and whether it would be worth it to invest time in development of a XAML icons product.
The benefit of bitmap icons (like in our Actipro Icons product) are that they are touched-up to look spectacular at 16x16 and 32x32 sizes. The downside is that when doing animation on them or scaling them up, they appear pixelated.
XAML icons are vector-based and are a native format to WPF. They scale and rotate just as crisp and clear as at their target size and orientation. This means they are ideal for various animations and/or other effects. Additionally, when zooming in either via WPF scaling or Windows’ Magnifier, or when using alternate DPIs, they continue to look great.
Nearly all vector icon developers create their icons at 256x256 size and a small handful of them sell XAML-based copies of them. Why is this bad? Well at 256x256 and even probably down at 64x64 size, the icons will look perfect. However realistically, how many of us use icons at those sizes?
I would argue that 99% of icon usage is at 16x16 or 32x32 size, or sizes close to those. Even if you have a well designed icon for 256x256 size, as soon as you scale it down to 32x32 or below, it will look blurry and many features of the icon such as borders will be invisible. This is not good, and brings us back to where bitmap icons really shine.
There has to be a solution that allows us to use vector-based XAML icons and still have them be detailed and distinguishable at small sizes like 16x16. Here’s what we came up with in the event we do pursue a XAML icons product…
First, we still make a large 256x256 icon size for those who want the ultimate detail level for large size images. Second, in addition to that size, we develop more customized variations of each icon that are meant to be used at smaller sizes such as one for 16x16 and one for 32x32.
Since most usage of icons is at or around 16x16 or 32x32 sizes, these special variations would be near their bitmap icon counterparts in quality and clarity. Yet they would still be able to be scaled up and down per WPF animations and effects, and would not suffer from pixelation.
Note that XAML icons made at 16x16 would use very large borders and more contrast for the icon content, since that would show up best at the small size. Whereas the larger variations would include more detail not found in the smaller variations, smaller borders, and more gradient effects, etc.
Icons can be designed using various styles. Common styles are the Vista style, the Office 2007 style, or older XP styles. Personally, I prefer the Office 2007 style of icon when used within applications. I feel it’s more approachable.
We really want to hear your feedback on these ideas since it will guide us to determine whether we should pursue a XAML icons product or not. Also tell us which “style” would you like XAML icons to be in, either Office 2007, Vista, or another style?
Please post comments here or send us an e-mail. Thanks for your help!
December 9, 2008 at 16:40
if pricing is not too far away from bitmap, i will buy the XAML icons, i already bought many others, including the XAML icons from horizon (agile), so I look forward to yours
December 9, 2008 at 23:26
Having used XAML-based icons in developing an actual product, I would recommend avoiding them if possible. First, loading XAML icons for use is a royal pain. There is no ImageSource derivative that loads up XAML files, so you need to create a separate DrawingBrush for each one. Secondly, they cannot be used with many third-party controls that expect ImageSources for buttons, such as Actipro's own Ribbon control. Third, the overhead in loading and rendering XAML icons is generally higher than it is with small (16x16 or 32x32) bitmaps, and I don't believe they can be cached as efficiently.My takeaway has been that XAML icons are only worth the hassle if (and only if) you need images to be displayed in a scalable interface. In our case, we were implementing a graphical lot trace application for displaying manufacturing processes in a connected graph (horizontal tree) form. Since the user is able to pan and zoom around the graph, it was necessary to have icons that could scale well. Also, since the graph control was proprietary, we did not have the issue of compatibility--we didn't start with a graph component that expected ImageSources. When it comes to more traditional uses of icons, such as ribbons, toolbars, and trees, I would recommend sticking with bitmap/png/icon files.
December 10, 2008 at 04:28
As for icon style, I tend to agree that the "Office 2007" style is clean and friendly.
December 10, 2008 at 09:35
Hey Mike, thanks for the comments. One thing we can do as XAML icon developers though is design our XAML icons AS DrawingImage objects. This way you can put them right in your app resources and reference them directly in any Image or other control that uses an ImageSource. DrawingImage inherits ImageSource, so that is the easiest way to use them and may solve some of the usage difficulties you pointed out when using other XAML icons.
Bill Henning (Actipro)
December 10, 2008 at 14:51
Hey Bill,I keep forgetting about DrawingImage. You're quite right that bundling icons as DrawingImages would alleviate a lot of pains.Another point that I neglected to mention is that XAML icons have a benefit over bitmap icons in that many icons in the .ico format bundle several size/bpp variants in the same file, e.g. you have one .ico file with 64x64, 32x32, 16x16, etc. Well, the WPF BitmapDecoder for the Icon format always selects the "best" (largest w/ highest bpp) format. Thus, if you're importing an icon for use in a 16x16 toolbar, you may get the 32x32 or even 64x64 icon variant even if you specify a DecodePixelWidth/Height of 16 and set your Image size to 16x16. I suspect this isn't a problem with the Actipro icons, as yours are available in .png format as well, but it's a definite problem with some traditional icon sets.
December 10, 2008 at 19:58
Just one last note, and then I'll shut up... Linux desktop environments have been using SVG-format icons for a few years now, and their designers haven't had much trouble creating icons that display nicely across a wide range of sizes (16x16 up to 256x256). Scalable icons have been used on the Mac platform as well, though they use a PDF-based format, and I'm not sure if they use separate size variants or not.That said, if you guys are willing to bundle your icons in the "ResourceDictionaries of DrawingImages" format, I think it would be worthwhile to ship a collection of "general" icons to see what kind of adoption rate you get.
December 11, 2008 at 03:55
Hey Mike,XAML icons will bnot replace the Bitmap icons, use each when is appropriate. I will not use them in the same place, but if something is animated like a fish-eye panel, then XAML icons just are the right thing. I would not use them in a Ribbon anyway.
December 11, 2008 at 09:01
Hi Christoph, I agree. I believe that each serve a different purpose. Our reason for posting this blog request for feedback is to determine whether customers would like to see us offer a new XAML icons product in addition to Actipro Icons (bitmap version). We really like our existing bitmap product. We just want to gauge the interest in XAML icons to see if it's worth the time investment to offer those as well.
December 12, 2008 at 04:14
Scalable images sound great, as long as they can properly integrate into WPF and like Mike said be used as regular images.Mike said that scalable icons on Mac use a "PDF-based format". Regular icons on Mac (.icns) are collections of several bitmap representations (from 16x16 to 512x512), but art that is scalable is generally stored in an ordinary PDF with an alpha channel or drawn in code.
December 12, 2008 at 13:59
I had another idea for easing management of XAML icons. Actipro could ship a utility with their XAML icon sets that would allow developers or designers to graphically select the subset of icons that they want to include in their application, and then export the selected icons to a ResourceDictionary XAML file. This would make it much easier to organize only the icons that are being used, rather than forcing the user to manually extract the desired icons or import the entire collection into their application (a big waste of memory).
December 12, 2008 at 19:09
Good thought, it was something we were throwing around here too.
December 17, 2008 at 03:02
I imagine this isn't possible, but what would be awesome is if there were some logic inside the DrawingImage that would, based on the scale, select the "correct" image...Also, referring to these as "icons" is potentially misleading, since an icon is a specific type of ImageSource, and these are different (at least, the ones I looked at were). For instance, Window.Icon will only accept an ImageSource that is actually an icon. In our application, we ended up using a library called IconLib that I found on CodeGuru that can convert from an arbitrary image to an actual icon.
January 24, 2009 at 17:02
I'd love to see XAML support for icons as well. I'm already designing XAML based assets like toolbar and button icons and would love to be able to continue to use XAML and be able to convert that to a .ico format. While you are add it being able to convery from XAML to a cursor (.cur) would be great too since WPF does not support XAML based cursors.
February 16, 2009 at 13:09
Hi, I have some icons provided by our UI Designer in XAML. The Canvas has been used to frame the icon. How do one load a XAML based Icon? Any Ideas.
March 2, 2009 at 00:14
If think it's time to start looking at XAML icons. Not for computers, but for mobile devices. There are devices out there that have all different sizes. And once Windows Mobile 6.5 get out there into the consumer's hand, XAML (or resolution independent GUIs) will become more popular. It's hard to develop one mobile app for 6 different resolutions - and then there's screen rotation. Silverlight uses XAML and Nokia/Symbian will include Silverlight in their phones. The next apps will need to have resolution independence and XAML is the way to go (for now)... Apple's even going to support Silverlight and XAML in their upcoming iPhone market (but do NOT quote me on this!).
October 15, 2009 at 05:24
Bit late contributing to this thread but I'd like to see Xaml icons - stock assets of alsorts really. As you point out there are some fancy higher res Xaml images but what I need is a credible and broad suite of icons. Mike may have some points, but seeing an app running under a different DPI to the DPI for which the images used by the app are designed is not pleasant. Even scaling the image back to its original pixel size results in blurred images. Vector icons are crisp at all DPIs.