2016-02-09 3 views
1

Как я могу добиться эффекта зависания для элемента Listview, например, в приложении Windows 10 Universal News? Когда элемент коснется или наведите указатель мыши, появится эффект зомминга с серой рамкой. Вы можете видеть на фотографиях.ListViewItem Hover effect

Normal Style

Hover Style

Edit: Я пытался изменить FocusBorderBrush из ListViewItem, как это.

Добавление этого app.xaml

<Style TargetType="ListViewItem"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="ListViewItem"> 
         <ListViewItemPresenter 
             FocusBorderBrush="{ThemeResource GreenBackgroundThemeBrush}" 
             /> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

     <SolidColorBrush x:Key="GreenBackgroundThemeBrush" Color="Green" /> 

это мой ListView:

<ListView ItemsSource="{Binding myItems}"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <Grid> 
        <TextBlock Text="{Binding id}"/> 
       </Grid> 
      </DataTemplate> 
     </ListView.ItemTemplate>  
    </ListView> 

Но это изменение только цвета границы, когда элемент имеет фокус.

Теперь это выглядит следующим образом:

enter image description here

Есть ли способ сделать что-то вроде новостей приложения, а не только фокусировать предмет?

+0

Вы попробовали * anything *? –

+0

@thomas Посмотреть отредактированный пост – user2025830

ответ

2

Добавьте следующее в файл приложения и отредактируйте его по мере необходимости. это стиль по умолчанию для ListView, вам не нужно все это, но я просто подумал, что было бы лучше показать вам все, что можно изменить, то, что вам нужно, это FocusBorderBrush и указатель на свойства. Береги себя.

<Style TargetType="ListViewItem"> 
     <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 HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" 
              VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" 
              CheckBoxBrush="{ThemeResource SystemControlForegroundBaseMediumHighBrush}" 
              CheckBrush="{ThemeResource SystemControlForegroundBaseMediumHighBrush}" 
              CheckMode="Inline" 
              ContentMargin="{TemplateBinding Padding}" 
              ContentTransitions="{TemplateBinding ContentTransitions}" 
              DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}" 
              DragBackground="{ThemeResource ListViewItemDragBackgroundThemeBrush}" 
              DragForeground="{ThemeResource ListViewItemDragForegroundThemeBrush}" 
              DragOpacity="{ThemeResource ListViewItemDragThemeOpacity}" 
              FocusBorderBrush="{ThemeResource SystemControlForegroundAltHighBrush}" 
              FocusSecondaryBorderBrush="{ThemeResource SystemControlForegroundBaseHighBrush}" 
              PlaceholderBackground="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}" 
              PointerOverBackground="{ThemeResource SystemControlHighlightListLowBrush}" 
              PointerOverForeground="{ThemeResource SystemControlHighlightAltBaseHighBrush}" 
              PressedBackground="{ThemeResource SystemControlHighlightListMediumBrush}" 
              ReorderHintOffset="{ThemeResource ListViewItemReorderHintThemeOffset}" 
              SelectedBackground="{ThemeResource SystemControlHighlightListAccentLowBrush}" 
              SelectedForeground="{ThemeResource SystemControlHighlightAltBaseHighBrush}" 
              SelectedPointerOverBackground="{ThemeResource SystemControlHighlightListAccentMediumBrush}" 
              SelectedPressedBackground="{ThemeResource SystemControlHighlightListAccentHighBrush}" 
              SelectionCheckMarkVisualEnabled="True" /> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
+0

Я пробовал это, но получаю сообщение об ошибке «Не могу найти ресурс с именем/ключом TransparentBackgroundThemeBrush» – user2025830

+0

Простите, я отправил с некоторыми из моих ThemeResources в него, попробуйте это сейчас. –

+0

ОК, который работает. Но должен ли я сделать свою собственную кисть для изменения FocusBorderBrush? – user2025830