wpf - Change the color of a Border element in ListBox when item is selected -


i have following itemtemplate defined listbox.

<listbox.itemtemplate>     <datatemplate>         <grid margin="0 4 0 4">             <grid.columndefinitions>                 <columndefinition width="auto" sharedsizegroup="grp1" />                 <columndefinition width="*" />                 <columndefinition width="auto" sharedsizegroup="grp2" />             </grid.columndefinitions>             <grid.rowdefinitions>                 <rowdefinition height="auto" />                 <rowdefinition height="auto" />                 <rowdefinition height="auto" />             </grid.rowdefinitions>             <border borderbrush="black" borderthickness="0 0 0 1" grid.column="0" grid.row="0" grid.columnspan="3">                 <textblock text="..." fontsize="16" />             </border>             <textblock grid.column="0" grid.row="1" grid.columnspan="3" text="..." />             <stackpanel grid.column="0" grid.row="2" orientation="horizontal">                 <textblock grid.column="0" grid.row="2" text="..." />             </stackpanel>         </grid>     </datatemplate> </listbox.itemtemplate> 

the thing is, when item selected, textblock's foreground colors change, border's color remains black:

unselected:

enter image description here

selected:

enter image description here

how can change color of border match color of textblocks?

the item selection colors defined in controltemplate listboxitem. container itemtemplate injected colors set time datatemplate being rendered. override need set listbox.itemcontainerstyle new style controltemplate want. simple example below. keep close possible you're seeing now, use option in blend "edit copy" of current template being rendered under current theme. can edit parts want , keep rest of template same.

<style x:key="listboxitembasicstyle" targettype="{x:type listboxitem}">     <setter property="snapstodevicepixels" value="true"/>     <setter property="overridesdefaultstyle" value="true"/>     <setter property="template">         <setter.value>             <controltemplate targettype="{x:type listboxitem}">                 <grid snapstodevicepixels="true">                     <border x:name="border" background="{templatebinding background}" borderbrush="{templatebinding borderbrush}" borderthickness="{templatebinding borderthickness}"/>                     <contentpresenter horizontalalignment="{templatebinding horizontalcontentalignment}" verticalalignment="{templatebinding verticalcontentalignment}"/>                 </grid>                 <controltemplate.triggers>                  <!-- change isselected selectedbackgroundbrush set selection color items -->                     <trigger property="isselected" value="true">                         <setter property="background" value="{dynamicresource selectedbackgroundbrush}" targetname="border"/>                     </trigger>                      <trigger property="isenabled" value="false">                         <setter property="foreground" value="{dynamicresource disabledforegroundbrush}"/>                     </trigger>                 </controltemplate.triggers>             </controltemplate>         </setter.value>     </setter> </style> 

Comments

Popular posts from this blog

cakephp - simple blog with croogo -

How to group boxplot outliers in gnuplot -

bash - Performing variable substitution in a string -