2017-12-14 65 views
0

경로 및 텍스트 블록이 포함 된 스택 패널이 Listviewitem 안에 있습니다. Listviewitem 선택 트리거에서 Path의 채우기 색을 변경하는 스타일을 작성하려고합니다. <Trigger Property="IsSelected" Value="true"> 내부변경 방법 ListviewItem 선택 트리거 wpf에서 빅터 이미지 채우기 색상

<Window.Resources> 
    <Style TargetType="{x:Type Path}"> 
     <Setter Property="Path.Fill" Value="Red" /> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=ListViewItem}}" Value="True"> 
       <Setter Property="Path.Fill" Value="Gray" /> 
      </DataTrigger> 
     </Style.Triggers> 

    </Style> 
</Window.Resources> 
<StackPanel> 
    <ListView> 
     <ListViewItem > 
      <StackPanel Name="New" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left"> 
       <Path x:Name="buttonPath" Width="38" Height="38" Canvas.Left="19" Canvas.Top="19" Stretch="Fill" Data="F1 M 38,19C 48.4934,19 57,27.5066 57,38C 57,48.4934 48.4934,57 38,57C 27.5066,57 19,48.4934 19,38C 19,27.5066 27.5066,19 38,19 Z M 33.25,33.25L 33.25,36.4167L 36.4166,36.4167L 36.4166,47.5L 33.25,47.5L 33.25,50.6667L 44.3333,50.6667L 44.3333,47.5L 41.1666,47.5L 41.1666,36.4167L 41.1666,33.25L 33.25,33.25 Z M 38.7917,25.3333C 37.48,25.3333 36.4167,26.3967 36.4167,27.7083C 36.4167,29.02 37.48,30.0833 38.7917,30.0833C 40.1033,30.0833 41.1667,29.02 41.1667,27.7083C 41.1667,26.3967 40.1033,25.3333 38.7917,25.3333 Z "/> 
       <TextBlock Text="New" FontSize="20px" Width="80px" Margin="5,0,0,0" FontWeight="Bold" /> 
      </StackPanel> 
     </ListViewItem> 
    </ListView> 

답변

1

Path 로컬 값을 설정 Fill="#FF000000". Dependency Property Value Precedence으로 인해 스타일은이를 무시할 수 없습니다.

봅니다 스타일의 기본 세터 포함합니다 :

<Style TargetType="{x:Type Path}"> 
    <Setter Property="Path.Fill" Value="#FF000000" /> 
    <Style.Triggers> 
     <Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="Path.Fill" Value="Red" /> 
     </Trigger> 
     <Trigger Property="IsMouseOver" Value="False"> 
      <Setter Property="Path.Fill" Value="Gray" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

Fill="#FF000000" 속성을 제거합니다.

+0

나는 그것이 ListViewItem이이 두 컨트롤 (벡터 이미지와 TextBlock의)이 StackPanel에있다 목록보기 항목 선택 – ASh

+0

관련 될 수있는 방법을 이해하기 위해 더 많은 세부 사항이 필요합니다. listviewitem을 선택하면 벡터 이미지의 채우기 색을 변경하고 싶습니다. – Geeth

+1

DataTrigger를 Style.Triggers에 추가합니다. 이 선택 – ASh