wpf - Why is button background defaulting to grey when IsPressed is true -


i have simple problem. using ispressed trigger want able set background color of button other default grey. here button looks when not pressed
alt text

and here looks when clicked
alt text

here trigger button. know trigger firing correctly because of glow effect around edge of button when clicked. know brush correct because tried out background brush see looked like.

    <style.triggers>         <trigger property="ismouseover" value="true">             <setter property="background" value="{dynamicresource buttonhoverbrush}"/>             <setter property="bitmapeffect" value="{dynamicresource buttonhoverglow}"/>         </trigger>         <!-- trigger working background color wont change -->         <trigger property="ispressed" value="true">             <setter property="bitmapeffect" value="{dynamicresource buttonhoverglow}"/>             <setter property="background" value="{dynamicresource buttonpressedbrush}" />         </trigger>     </style.triggers>   

here entire style, can see, default style applying buttons across application.

<style targettype="button">     <setter property="background" value="{dynamicresource buttonbrush}" />     <setter property="foreground" value="black" />     <style.triggers>         <trigger property="ismouseover" value="true">             <setter property="background" value="{dynamicresource buttonhoverbrush}"/>             <setter property="bitmapeffect" value="{dynamicresource buttonhoverglow}"/>         </trigger>         <trigger property="ispressed" value="true">             <setter property="bitmapeffect" value="{dynamicresource buttonhoverglow}"/>             <setter property="background" value="{dynamicresource buttonpressedbrush}" />         </trigger>     </style.triggers> </style> 

here final solution(thank helped)

  1. create control template generic button , data binding:

    <controltemplate targettype ="button" x:key="buttoncontroltemplate">      <border background="{templatebinding background}"              borderthickness="{templatebinding borderthickness}"              borderbrush="{templatebinding borderbrush}"              cornerradius="3">          <grid>              <contentpresenter contentsource="{templatebinding content}"                                 contenttemplate="{templatebinding contenttemplate}"                                verticalalignment="{templatebinding verticalcontentalignment}"                                horizontalalignment="{templatebinding horizontalcontentalignment}"/>          </grid>                 </border> </controltemplate> 
  2. add control template style:

    <style targettype="button">     <setter property="background" value="{dynamicresource buttonbrush}" />     <setter property="foreground" value="black" />     <setter property="template" value="{dynamicresource buttoncontroltemplate}" />     <setter property="borderthickness" value="1" />     <style.triggers>         <trigger property="ismouseover" value="true">             <setter property="background" value="{dynamicresource buttonhoverbrush}"/>             <setter property="bitmapeffect" value="{dynamicresource buttonhoverglow}"/>         </trigger>         <trigger property="ispressed" value="true">             <setter property="bitmapeffect" value="{dynamicresource buttonhoverglow}"/>             <setter property="background" value="{dynamicresource buttonpressedbrush}" />         </trigger>     </style.triggers> </style> 

note: borderthickness defaulted 1 because otherwise doesnt show

the problem lies in default control template windows xp theme luna. if change theme in display properties classic style work.

it should possible override system colors in wpf, haven't been able solve problem solution, maybe color frozen cannot changed or class creating theme-specific look, buttonchrome, broken.

i think best bet make own control template button.


Comments

Popular posts from this blog

javascript - Enclosure Memory Copies -

php - Replacing tags in braces, even nested tags, with regex -