2016-07-08 5 views
0

У меня сегодня странная проблема. У меня есть следующие ListView:Стиль ListViewItem не работает правильно

<ListView ItemsSource="{x:Bind ViewModel.Items, Mode=OneWay}" 
          IsItemClickEnabled="True" 
          SelectionMode="Single" 
          x:Name="listviewZoomedIn" 
          ItemContainerStyle="{StaticResource ListViewCustomItemStyle}"/> 

И в ItemContainerStyle под названием "ListViewCustomItemStyle" заключается в следующем:

<Style TargetType="ListViewItem" x:Key="ListViewTransmitterItemStyle"> 
    <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" /> 
    <Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" /> 
    <Setter Property="Background" Value="Transparent"/> 
    <Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundBaseHighBrush}" /> 
    <Setter Property="TabNavigation" Value="Local"/> 
    <Setter Property="IsHoldingEnabled" Value="True"/> 
    <Setter Property="Padding" Value="12,0,12,0"/> 
    <Setter Property="HorizontalContentAlignment" Value="Left"/> 
    <Setter Property="VerticalContentAlignment" Value="Center"/> 
    <Setter Property="MinWidth" Value="{ThemeResource ListViewItemMinWidth}"/> 
    <Setter Property="MinHeight" Value="{ThemeResource ListViewItemMinHeight}"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ListViewItem"> 
       <ListViewItemPresenter 
     ContentTransitions="{TemplateBinding ContentTransitions}" 
     SelectionCheckMarkVisualEnabled="True" 
     CheckBrush="{ThemeResource SystemControlForegroundBaseMediumHighBrush}" 
     CheckBoxBrush="{ThemeResource SystemControlForegroundBaseMediumHighBrush}" 
     DragBackground="{ThemeResource ListViewItemDragBackgroundThemeBrush}" 
     DragForeground="{ThemeResource ListViewItemDragForegroundThemeBrush}" 
     FocusBorderBrush="{ThemeResource SystemControlForegroundAltHighBrush}" 
     FocusSecondaryBorderBrush="{ThemeResource SystemControlForegroundBaseHighBrush}" 
     PlaceholderBackground="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}" 
     PointerOverBackground="{ThemeResource SystemControlHighlightListLowBrush}" 
     PointerOverForeground="{ThemeResource SystemControlHighlightAltBaseHighBrush}" 
     SelectedBackground="{ThemeResource SystemControlHighlightListAccentLowBrush}" 
     SelectedForeground="{ThemeResource SystemControlHighlightAltBaseHighBrush}" 
     SelectedPointerOverBackground="{ThemeResource SystemControlHighlightListAccentMediumBrush}" 
     PressedBackground="Orange" 
     SelectedPressedBackground="{ThemeResource SystemControlHighlightListAccentHighBrush}" 
     DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}" 
     DragOpacity="{ThemeResource ListViewItemDragThemeOpacity}" 
     ReorderHintOffset="{ThemeResource ListViewItemReorderHintThemeOffset}" 
     HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" 
     VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" 
     ContentMargin="{TemplateBinding Padding}" 
     CheckMode="Inline"/> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

В этом стиле я только изменил цвет PressedBackground. И эта работа только для первого нажатия на элемент. Затем прессованный фон прозрачен.

ответ

1

Справа на PressedBackground Недвижимость, которую вы изменили на Orange, является собственностью SelectedPressedBackground. Это определяет цвет нажатого состояния для выбранного элемента. Измените это на Orange или любой цвет, который вам нужен, и он должен работать.

+0

Логика ... Благодаря вам –