Thank you for writing.
The back color of the button is painted in its pressed state. The pressed state is set after receiving a WM_LBUTTONDOWN message sent by the operating system. With a mouse pointing device, this message is sent and captured immediately. On a touch system, however, tapping the button with a finger will not send the WM_LBUTTONDOWN immediately and the message will be sent when you slightly pan or raise your finger. That is why the back color of the button is not adjusted by the theme, simply its Pressed
is set too late and then the button is painted with its default color after performing the Click
. Exactly the same behavior can be observed with the standard Microsoft button, and you can test it by subscribing the control to its MouseDown event.
As a solution, I can suggest using the SetThemeValueOverride
API and to manually change the back-color. After a small interval, you can reset it to its theme-defined value. Please note, however, that this API has been introduced in the Q3 2015 release
I am also sending you my test project demonstrating how this can be achieved. Let me know if you need further assistance.