2016-04-06 11 views
1

現在、ListViewコントロール内のGridViewを使用するアプリケーションで作業しています。GridViewRowPresenterマウス・ホバー・トリガー・スタイルのオーバーライド

私は青いホバーを変更しようとしている/選択された行への影響をクリックして、これまでのところ、私は、私が試した(と私は多くのことを試してみました)何でもそれを行うことができていない

関連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" /> <!-- This actually works here, but I can't change background --> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

XAMLのリストビューコード:app.xamlから

<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> 

私は本当にGridViewのテンプレートでそのホバー色を変更する方法を学びたい...と私はどこにでも見てきたが、n個幸運にもPS。私は窓7にいるが、同じことは窓8にもある。

答えて

0

それはあなたの最初のアプローチが動作しない理由(それは?あなたが設定されたプロパティ、しなければならない)明確ではありませんが、とにかくここにあなたがIsSelectedにして対処することもできます取り組ん1

<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> 

です選択された色と選択されていない色とを区別する。次に、MultiDataTriggerを使用することができます。下の例では、選択した項目を除いて、ハイライト(境界線のみ)を削除します。

<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> 
+0

このような仕組みがあります。ハイライトカラーは何らかの理由で勾配を持っています。 – DethoRhyne

関連する問題