views:

220

answers:

2
+1  Q: 

Wpf ImageButtons?

Hello!

I created a WPF application that has many buttons.

Now the customer wants to change all the buttons to icons. For example: All the OK buttons should have the same icon, all the cancel btns and so on.

I want to put in all the buttons Style="{StaticResource ButtonStyle_OK}", Style="{StaticResource ButtonStyle_OK}" etc.

Now my question is in general what do I have to place in these styles

<Style x:Key="ButtonStyle_OK" TargetType="Button">
    <!-- What comes here? -->                
</Style>

I am affraid I am going to change all the buttons in my application to Image and use MouseDown event for click, would that be stupid?

NOTES: I want the buttons to be an image - not a button that contains an image (i.e. I don't want the original button frame), talking about the shape. I want to have these buttons/styles reusable.

+3  A: 

put them into a resource dictionary, then all you have to do is swap out dictionaries to change the style and pretty much anything to do with the UI side of the buttons, etc.

I'm thinking you want a control template in the tag(s), something like this:

<Setter TargetType="{x:Type Button}">
     <Setter Property="Template">
       <Setter.Value>
         <ControlTemplate TargetType="{x:Type Button}">
        </ControlTemplate>
       </Setter.Value>
     <Setter Property="Template">
</Setter>

you should be able to find the default template online (MSDN) relatively easy. I would recommend using Blend to do this (if you can)--it can make things hella easier.

Muad'Dib
I edited my question.
Shimmy
+2  A: 

Take a look at this MSDN article on styling - http://msdn.microsoft.com/en-us/library/ms745683.aspx

I think you might be able to get some traction by reading the ControlTemplate section.

Also, as noted by Chris, the styles can go into a resource dictionary and then can be applied globally against all buttons by omitting a key.

UPDATE: You will not need to use image with click event, using the ControlTemplate will allow you to define the look of the button more precisely.

Another example - http://mrpmorris.blogspot.com/2008/04/wpf-custom-button-templates.html

benPearce