So it if the "2 sub-image" button is replaced by "3 sub-image" button in theory one of the sub-images is going to be the hover state for both the expand and contract buttons.
The more logical approach would be to replace the current 2-sub-images with 4 sub-images so that image 1 would be the Normal State for the Expand Button, image 1 2 its Hover State, image 3 the Normal State for the Contract button and image 4 its Hover State.
@ET Thank you for posting this. I had it in the back of my mind that having only a single hover image would be a challenge, though I could live with it for round buttons. For arrowheads, one might consider for example a hover image with arrowhead pointing 45 degrees down, or a curved line with arrowheads at both ends, or something neutral like an asterisk, all of which would cover changes in both directions in a new way!
But I agree that 4 subimages, as you describe, is a more flexible solution. It allows one to visually address the "direction" of the implied state change with two
different hover images. For example, highlight each state button individually as is often done with the two play/pause control button sets. Or hover with a highlighted image of the target state. This would differ from MC's most common button conventions and would benefit from documentation, but it is not unprecedented to do so (for example the Frame RadioButton described in the document
Standard View Skinning SDK). Hopefully, under the hood Matt can still make it compatible with existing 2-subimage implementations when
NumberImages="2".