Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I'm new to the AddIn customization model in ArcGIS 10 and I'm trying to figure out how to change a button image for a button. I'm looking for the equivalent to the BaseCommand UpdateBitmap method and haven't had any luck. Is this a limitation of the AddIn model? Or did I miss something obvious?

share|improve this question

3 Answers 3

I have not worked with add-ins in ArcGIS 10, but looking at the documentation (see heading Add-in file anatomy), it appears that you would need to specify the image declaratively in the add-in's XML configuration (metadata):

<ESRI.Configuration
 xmlns="http://schemas.esri.com/Desktop/AddIns"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <!-- Omitted -->

    <AddIn language="CLR" library="Acme.dll" namespace="Acme">
        <ArcMap>
            <Commands>
                <Button
                     id="Acme_ToggleDockWinBtn"
                     class="ToggleDockWinBtn"
                     caption="OpenDockWin"
                     category="Acme Tools" 
                     image="Images\ToggleDockWinBtn.png" <!-- Define image URI --> 
                     tip="Toggle dockable window."
                     message="Open dockable window.">
                       <Help heading="Toggle">Turns the ACME dockable window on and off.</Help>
                </Button>
            </Commands>
        </ArcMap>
     </AddIn>

</ESRI.Configuration>

See also the Advanced add-in concepts topic, which suggests that graphics should no longer be embedded as resources in the assembly.

share|improve this answer
up vote 2 down vote accepted

Ok, I've worked something out using ICommandItem.FaceID. I wasn't initially thinking of using ICommandItem, but it gets the job done.

ICommandItem commandItem = ArcMap.Application.Document.CommandBars.Find(...;
commandItem.FaceID = ESRI.ArcGIS.ADF.COMSupport.OLE.GetIPictureDispFromBitmap(bitmap);
share|improve this answer

The image used in the xml configuration file must have its property "build action" set to AddInContent - at least is vs2012 for arcgis 10.2.

share|improve this answer
2  
How exactly does that address the question? –  blah238 Apr 9 at 4:19
    
While true, this doesn't answer the question. Maybe it could be a comment on Adam's question since his answer also pertains to the xml declarative. –  Jay Cummins Apr 9 at 12:59

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.