i'm working on application uses gridview inside listview control.
i'm trying change blue hover/click effect on selected row , far haven't been able whatever tried (and tried lot of things)
related xaml app.xaml:
<style x:key="{x:type listview}" targettype="listview"> <setter property="borderthickness" value="0" /> </style> <style targettype="{x:type gridviewrowpresenter}"> <style.triggers> <trigger property="ismouseover" value="true"> <setter property="height" value="20" /> <!-- works here, can't change background --> </trigger> </style.triggers> </style>
xaml listview code:
<listview horizontalalignment="left" height="668" verticalalignment="top" width="700" foreground="#bdbdbd" background="#090909" name="results"> <listview.itemcontainerstyle> <style targettype="listviewitem"> <setter property="horizontalcontentalignment" value="center"/> </style> </listview.itemcontainerstyle> <listview.view> <gridview allowscolumnreorder="false"> <gridviewcolumn header="id" displaymemberbinding="{binding id}" width="130"/> <gridviewcolumn header="name" displaymemberbinding="{binding name}" width="220"/> <gridviewcolumn header="details" displaymemberbinding="{binding details}" width="120"/> </gridview> </listview.view> </listview>
i learn how change hover color in gridview's template.. , i've looked everywhere, no luck.. ps. i'm on windows 7, same thing on windows 8 well.
it's not clear why first approach doesn't work (it must, property setting?), anyway here working one
<listview ...> <listview.itemcontainerstyle> <style targettype="listviewitem"> <style.triggers> <trigger property="ismouseover" value="true"> <setter property="background" value="red" /> </trigger> </style.triggers> </style> </listview.itemcontainerstyle> </listview>
you may want deal with isselected
distinguish selected , not selected highlight color. may want use multidatatrigger
, e.g. below example remove highlight (only border still) selected item:
<multidatatrigger> <multidatatrigger.conditions> <condition binding="{binding ismouseover, relativesource={relativesource self}}" value="true" /> <condition binding="{binding isselected, relativesource={relativesource self}}" value="false" /> </multidatatrigger.conditions> <setter property="background" value="transparent" /> </multidatatrigger>
Comments
Post a Comment