<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Arik Poznanski&amp;#39;s Blog : SmallHighContrastImages</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/tags/SmallHighContrastImages/default.aspx</link><description>Tags: SmallHighContrastImages</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Windows Ribbon for WinForms, Part 10 – Working With Images</title><link>http://blogs.microsoft.co.il/blogs/arik/archive/2009/10/24/windows-ribbon-for-winforms-part-10-working-with-images.aspx</link><pubDate>Sat, 24 Oct 2009 04:10:00 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:429798</guid><dc:creator>arik</dc:creator><slash:comments>10</slash:comments><description>&lt;p&gt;In this post we&amp;#39;ll review the ribbon framework images terminology and see how to set images both statically and dynamically in your WinForms application.&lt;/p&gt;  &lt;p&gt;More details can be found at &lt;a href="http://msdn.microsoft.com/en-us/library/dd316921(VS.85).aspx"&gt;Specifying Ribbon Image Resources&lt;/a&gt; on MSDN. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Large Images vs. Small Images      &lt;br /&gt;&lt;/strong&gt;Many ribbon controls allow you to specify an image. For example: &lt;em&gt;Button&lt;/em&gt;, &lt;em&gt;ComboBox&lt;/em&gt;, and &lt;em&gt;Spinner&lt;/em&gt;.     &lt;br /&gt;Most of these controls have two properties, one for a large image and one for small. The Ribbon framework will choose one of these sizes according to the available screen space and your definitions for group scaling.&lt;/p&gt;  &lt;p&gt;Large image is usually of size 32x32 pixels and Small image is usually of size 16x16 pixels.    &lt;br /&gt;I say usually, because this can change. The actual image size should be dependent on your chosen resolution and DPI settings. Microsoft recommended sizes for images are as follows:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p align="center"&gt;&lt;u&gt;DPI&lt;/u&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p align="center"&gt;&amp;#160; &lt;u&gt;Small Image&lt;/u&gt; &lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p align="center"&gt;&amp;#160; &lt;u&gt;Large Image&lt;/u&gt; &lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p align="center"&gt;96 dpi&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p align="center"&gt;&amp;#160; 16x16 pixels&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p align="center"&gt;&amp;#160; 32x32 pixels&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p align="center"&gt;120 dpi&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p align="center"&gt;&amp;#160; 20x20 pixels&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p align="center"&gt;&amp;#160; 40x40 pixels&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p align="center"&gt;144 dpi&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p align="center"&gt;&amp;#160; 24x24 pixels&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p align="center"&gt;&amp;#160; 48x48 pixels&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p align="center"&gt;192 dpi&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p align="center"&gt;&amp;#160; 32x32 pixels&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p align="center"&gt;&amp;#160; 64x64 pixels&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;The images for a ribbon control are exposed via the &lt;em&gt;LargeImage&lt;/em&gt; and &lt;em&gt;SmallImage&lt;/em&gt; properties.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;High Contrast Mode      &lt;br /&gt;&lt;/strong&gt;High Contrast is a windows accessibility feature designed for people who have vision impairment. It can be turned on/off by pressing: Left ALT + Left SHIFT + PRINT SCREEN.&lt;/p&gt;  &lt;p&gt;The mode’s main affect is changing the system colors, so that near colors have high contrast.    &lt;br /&gt;Now, in order to support high contrast mode in your application, the ribbon framework exposes two extra properties: &lt;em&gt;LargeHighContrastImage&lt;/em&gt; and &lt;em&gt;SmallHighContrastImage&lt;/em&gt; which allows you to set images specifically for this mode. Here is an example of how an applications usually looks in high contrast mode:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_2DDFEDD0.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_44359315.png" width="511" height="179" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Setting Images Statically      &lt;br /&gt;&lt;/strong&gt;So we’ve mentioned that we have 4 image properties: &lt;em&gt;LargeImage, &lt;/em&gt;&lt;em&gt;SmallImage, &lt;em&gt;LargeHighContrastImage and Sm&lt;/em&gt;&lt;em&gt;allHighContrastImage. And that the size of the images depends on the current system settings.        &lt;br /&gt;So we need a way to supply the application different images for these scenarios. Here it is:&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;   &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e91fa318-23d6-4fff-9d14-bc010432a327" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Command&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Name&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;cmdCut&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Id&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;1008&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;LabelTitle&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;Cut&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Command.LargeImages&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutLargeImage32.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;96&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutLargeImage40.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;120&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutLargeImage48.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;144&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutLargeImage64.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;192&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Command.LargeImages&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Command.SmallImages&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutSmallImage16.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;96&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutSmallImage20.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;120&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutSmallImage24.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;144&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutSmallImage32.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;192&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Command.SmallImages&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Command.LargeHighContrastImages&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutLargeImage32HC.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;96&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutLargeImage40HC.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;120&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutLargeImage48HC.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;144&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutLargeImage64HC.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;192&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Command.LargeHighContrastImages&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Command.SmallHighContrastImages&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutSmallImage16HC.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;96&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutSmallImage20HC.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;120&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutSmallImage24HC.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;144&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Image&lt;/span&gt;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Source&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;res/CutSmallImage32HC.bmp&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;MinDPI&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;192&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt; /&amp;gt;&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Command.SmallHighContrastImages&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Command&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;If you don’t specify all theses images, the ribbon framework will use the available images and resize them according to his needs. Of course, providing the images yourself is the way to get the best results.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Setting Images Dynamically      &lt;br /&gt;&lt;/strong&gt;In this section we’ll see how to dynamically set the images for a button. The end result will look like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/image_5A8B385A.png"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://blogs.microsoft.co.il/blogs/arik/image_thumb_3A94D6F2.png" width="526" height="199" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This time the image doesn’t help, you need to run it yourself to see the code at work.    &lt;br /&gt;The “Swap Once” button demonstrates the simplest way to set the &lt;em&gt;LargeImage&lt;/em&gt; property programmatically.     &lt;br /&gt;The “Swap Image” button demonstrates how to set the image according to the recommended size.&lt;/p&gt;  &lt;p&gt;I’ve added a new function to the &lt;em&gt;RibbonLib.Ribbon&lt;/em&gt; class, named &lt;em&gt;ConvertToUIImage. Here is how you use it:&lt;/em&gt;&lt;/p&gt;  &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;   &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:9e8e3f11-d470-4b43-ac77-5e638ecf242c" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;"&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; _buttonDropA_OnExecute(&lt;span style="color:#2b91af;"&gt;PropertyKeyRef&lt;/span&gt; key, &lt;span style="color:#2b91af;"&gt;PropVariantRef&lt;/span&gt; currentValue, &lt;span style="color:#2b91af;"&gt;IUISimplePropertySet&lt;/span&gt; commandExecutionProperties)&lt;br /&gt; {&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000;"&gt;// load bitmap from file&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af;"&gt;Bitmap&lt;/span&gt; bitmap = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.Drawing.&lt;span style="color:#2b91af;"&gt;Bitmap&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;@&amp;quot;..&amp;#92;..&amp;#92;Res&amp;#92;Drop32.bmp&amp;quot;&lt;/span&gt;);&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;bitmap.MakeTransparent();&lt;br /&gt; &lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#008000;"&gt;// set large image property&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;_buttonDropA.LargeImage = _ribbon.ConvertToUIImage(bitmap);&lt;br /&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p style="margin:0px;"&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;If you want to set an image which has the correct size according to the current DPI settings, in order to avoid the ribbon framework from resizing your image, you should check the value of &lt;em&gt;SystemInformation.IconSize.Width.      &lt;br /&gt;Large images size should be &lt;/em&gt;(SystemInformation.IconSize.Width x SystemInformation.IconSize.Width) and small images size should be (SystemInformation.IconSize.Width/2) x (SystemInformation.IconSize.Width/2).&lt;/p&gt;  &lt;p&gt;Here is an example for setting an image according to windows settings:&lt;/p&gt;  &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;   &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e5e2787a-c661-44e9-9198-3353aa5a985d" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;"&gt;&lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; _buttonDropB_OnExecute(&lt;span style="color:#2b91af;"&gt;PropertyKeyRef&lt;/span&gt; key, &lt;span style="color:#2b91af;"&gt;PropVariantRef&lt;/span&gt; currentValue, &lt;span style="color:#2b91af;"&gt;IUISimplePropertySet&lt;/span&gt; commandExecutionProperties)&lt;br /&gt; &amp;#160;{&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&amp;gt; supportedImageSizes = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&amp;gt;() { 32, 48, 64 };&lt;br /&gt; &lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af;"&gt;Bitmap&lt;/span&gt; bitmap;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af;"&gt;StringBuilder&lt;/span&gt; bitmapFileName = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;StringBuilder&lt;/span&gt;();&lt;br /&gt; &lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;int&lt;/span&gt; selectedImageSize;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (supportedImageSizes.Contains(&lt;span style="color:#2b91af;"&gt;SystemInformation&lt;/span&gt;.IconSize.Width))&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{ &lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;selectedImageSize = &lt;span style="color:#2b91af;"&gt;SystemInformation&lt;/span&gt;.IconSize.Width;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;else&lt;/span&gt;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;selectedImageSize = 32;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt; &lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;exitOn = !exitOn;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;string&lt;/span&gt; exitStatus = exitOn ? &lt;span style="color:#a31515;"&gt;&amp;quot;on&amp;quot;&lt;/span&gt; : &lt;span style="color:#a31515;"&gt;&amp;quot;off&amp;quot;&lt;/span&gt;;&lt;br /&gt; &lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;bitmapFileName.AppendFormat(&lt;span style="color:#a31515;"&gt;@&amp;quot;..&amp;#92;..&amp;#92;Res&amp;#92;Exit{0}{1}.bmp&amp;quot;&lt;/span&gt;, exitStatus, selectedImageSize);&lt;br /&gt; &lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;bitmap = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; System.Drawing.&lt;span style="color:#2b91af;"&gt;Bitmap&lt;/span&gt;(bitmapFileName.ToString());&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;bitmap.MakeTransparent();&lt;br /&gt; &lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;_buttonDropB.LargeImage = _ribbon.ConvertToUIImage(bitmap);&lt;br /&gt; &amp;#160;}&lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;strong&gt;Behind the scenes      &lt;br /&gt;&lt;/strong&gt;What &lt;em&gt;ConvertToUIImage&lt;/em&gt; method actually does is creating an instance of a ribbon framework COM object named &lt;em&gt;UIRibbonImageFromBitmapFactory&lt;/em&gt;, which implements &lt;em&gt;IUIImageFromBitmap.&lt;/em&gt; This interface supplies a function for wrapping a given HBITMAP (handle for bitmap) as an &lt;em&gt;IUIImage&lt;/em&gt; interface.     &lt;br /&gt;The ribbon image properties work with these instances of &lt;em&gt;IUIImage&lt;/em&gt;. Note that the actual creation of &lt;em&gt;UIRibbonImageFromBitmapFactory&lt;/em&gt; is done in the &lt;em&gt;RibbonLib.Ribbon&lt;/em&gt; &lt;em&gt;InitFramework&lt;/em&gt; method.&lt;/p&gt;  &lt;div style="font-family:courier new;background:white;color:black;font-size:10pt;"&gt;   &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:7a57308f-b546-4a88-91d2-dc527df73905" class="wlWriterEditableSmartContent"&gt; &lt;div style="border:#000080 1px solid;color:#000;font-family:&amp;#39;Courier New&amp;#39;, Courier, Monospace;font-size:10pt;"&gt; &lt;div style="background-color:#ffffff;overflow:auto;padding:2px 5px;"&gt;&lt;span style="color:#0000ff;"&gt;public&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;IUIImage&lt;/span&gt; ConvertToUIImage(&lt;span style="color:#2b91af;"&gt;Bitmap&lt;/span&gt; bitmap)&lt;br /&gt; {&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (_imageFromBitmap == &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;)&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;{&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;null&lt;/span&gt;;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;}&lt;br /&gt; &lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#2b91af;"&gt;IUIImage&lt;/span&gt; uiImage;&lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;_imageFromBitmap.CreateImage(bitmap.GetHbitmap(), &lt;span style="color:#2b91af;"&gt;Ownership&lt;/span&gt;.Transfer, &lt;span style="color:#0000ff;"&gt;out&lt;/span&gt; uiImage);&lt;br /&gt; &lt;br /&gt; &amp;#160;&amp;#160;&amp;#160;&amp;#160;&lt;span style="color:#0000ff;"&gt;return&lt;/span&gt; uiImage;&lt;br /&gt; }&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;    &lt;p style="margin:0px;"&gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&lt;strong&gt;Bonus      &lt;br /&gt;&lt;/strong&gt;Similar to my implementation of helper classes for &lt;em&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/archive/2009/10/17/windows-ribbon-for-winforms-part-7-spinner.aspx"&gt;Spinner&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href="http://blogs.microsoft.co.il/blogs/arik/archive/2009/10/21/windows-ribbon-for-winforms-part-8-combobox.aspx"&gt;ComboBox&lt;/a&gt;&lt;/em&gt; ribbon controls, I’ve added helper classes for &lt;em&gt;Tab&lt;/em&gt;, &lt;em&gt;Group&lt;/em&gt; and &lt;em&gt;Button&lt;/em&gt; controls. These helpers let you change properties of tabs, groups and buttons easily. The button class also exposes an &lt;em&gt;OnExecute&lt;/em&gt; event, which facilitate the way you respond to button clicks.&lt;/p&gt;  &lt;p&gt;As always, the result of this post is yet another example of using ribbon features in WinForms applications. Find it at &lt;a href="http://windowsribbon.codeplex.com/"&gt;Windows Ribbon for WinForms&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;That’s it for now,    &lt;br /&gt;Arik Poznanski.&lt;/p&gt; &lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.microsoft.co.il%2fblogs%2farik%2farchive%2f2009%2f10%2f24%2fwindows-ribbon-for-winforms-part-10-working-with-images.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.microsoft.co.il%2fblogs%2farik%2farchive%2f2009%2f10%2f24%2fwindows-ribbon-for-winforms-part-10-working-with-images.aspx&amp;amp;bgcolor=6600FF" /&gt;&lt;/a&gt; &lt;a href="http://dotnetshoutout.com/Windows-Ribbon-for-WinForms-Part-10-Working-With-Images-Arik-Poznanskis-Blog"&gt;&lt;img style="border-right-width:0px;width:100px;border-top-width:0px;border-bottom-width:0px;height:18px;border-left-width:0px;" alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Fblogs.microsoft.co.il%2Fblogs%2Farik%2Farchive%2F2009%2F10%2F24%2Fwindows-ribbon-for-winforms-part-10-working-with-images.aspx" width="100" height="19" /&gt;&lt;/a&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=429798" width="1" height="1"&gt;</description><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/WinForms/default.aspx">WinForms</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DEV/default.aspx">DEV</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Ribbon/default.aspx">Ribbon</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/GUI/default.aspx">GUI</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/bitmaps/default.aspx">bitmaps</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Button/default.aspx">Button</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Group/default.aspx">Group</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/Tab/default.aspx">Tab</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/IUIImage/default.aspx">IUIImage</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/SmallImages/default.aspx">SmallImages</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/High+Contrast/default.aspx">High Contrast</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/LargeImages/default.aspx">LargeImages</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/SmallHighContrastImages/default.aspx">SmallHighContrastImages</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/UIRibbonImageFromBitmapFactory/default.aspx">UIRibbonImageFromBitmapFactory</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/DPI/default.aspx">DPI</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/LargeHighContrastImages/default.aspx">LargeHighContrastImages</category><category domain="http://blogs.microsoft.co.il/blogs/arik/archive/tags/IUIImageFromBitmap/default.aspx">IUIImageFromBitmap</category></item></channel></rss>