2017-10-19 1 views
0

ListView에 사용자 지정 ItemTemplate이 있습니다. 선택을위한 시각 효과를 제거하거나 변경하고 싶습니다. 다음과 같이 사용자 지정 WPF에서 선택 강조 표시를 제거 ListView

<ListView x:Name="DispList" ItemContainerStyle="{StaticResource MySty}" ItemTemplate="{StaticResource Mine}"> 

</ListView> 

그리고 자원에서

이 스타일을 정의 :
<Style TargetType="{x:Type ListViewItem}" x:Key="MySty"> 
     <Style.Resources> 
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/> 
     </Style.Resources> 
</Style> 

불행하게도,이 작동하지 않습니다

지금까지 내 ListView에 사용자 정의 ItemContainerStyle을 assgining했습니다. 내가 뭘 놓치고 있니?

답변

1

시스템 색상을 덮어 쓰려고하는이 방법은 Windows 8 이상에서는 작동하지 않습니다. ListViewItem 컨테이너의 ControlTemplate을 수정해야합니다. ListView Selected Item Style Override

예 : 올바른 방향으로 가리키는 대한

<ListView> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="{x:Type ListViewItem}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type ListBoxItem}"> 
         <Border x:Name="RootBorder"> 
          <ContentPresenter/> 
         </Border> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsMouseOver" Value="True"> 
           <Setter TargetName="RootBorder" Property="BorderBrush" Value="Red"/> 
           <Setter TargetName="RootBorder" Property="BorderThickness" Value="1"/> 
          </Trigger> 
          <!--<Trigger Property="IsSelected" Value="True"> 
           <Setter TargetName="RootBorder" Property="Background" Value="LightBlue"/> 
          </Trigger>--> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </ListView.ItemContainerStyle> 
    <ListViewItem>123</ListViewItem> 
    <ListViewItem>456</ListViewItem> 
    <ListViewItem>789</ListViewItem> 
</ListView> 
+0

감사합니다,하지만 당신은 아래의 특성은'ControlTemplate' 시각적 선택 효과에 해당하는 것을 자세히 설명해 수

은을 참조하십시오? 죄송합니다. 선택 표시 여부를 해제하고 싶습니다. –

+0

내가 원하는 것을 얻을 수있는 예제를 추가하여 내 대답을 수정했습니다. – Iron

관련 문제