we can change the background of buttons and menu items n other UI components etc but is there a way to also change the background image for hover, pressed and other states
I do not think that is a good idea as a standard guideline for user interfaces has been adopted. Think what would happen if the user made a system setting change for the width of a window frame, or the border for the icons, or even worse, apply a theme that makes your user interface pretty glarish as a result of the perception of the eyes of the user, this can have a knock-on effect - the user will end up not using your application as a result.
It would be prudence to just leave the natural colours of buttons etc as defined by the system settings such as gray buttons, white background on text boxes etc. Then later on, once the winform application is accomplished, then find out by asking the users for their feedback on the layout and colouring schemes.
The best advice is to leave it alone, because by chance, a user will have their customised settings for graphics display, larger fonts (instead of 96dpi, could have extra large fonts).
The place to look for this is in:
- Right click on the desktop
- A popup menu appears, select properties and click on it.
- A dialog box will appear, now click on the settings tab page.
It is on that tab page the font sizes, themes, borders and a whole host of customizations can take place.
Be wisse and practice safe caution here as I wouldn't go too far in making the application interface a colour playground as I have mentioned above. If you stick to my opinion of it, the application will be 'neutral' on the grounds that it will work with many themes and user settings as possible.
Hope this helps, Best regards, Tom.
Anything is possible. Override OnMouseHover, OnMouseEnter/Leave, OnPaint on the custom buttons... ;)