2016-02-29 11 views
5

これを選択すると、ListviewItemのプロパティを変更する方法はありますか?uwp win10 Listview SelectedItem Style

例として、ListviewItem内の矩形を選択すると赤、デフォルトでは青にしたいとします。

どのようにこれをエレガントな方法で達成するには?

答えて

16

ListView.ItemContainerStyleを設定すると、ListViewで使用されているListViewItemsのスタイルをカスタマイズできます。あなたの例の場合https://msdn.microsoft.com/en-us/library/windows/apps/mt299136.aspx

- あなたは以下のようなコードでSelected~Backgroundプロパティ変更します:

このページでは、デフォルトのスタイルを示し

<ListView ...> 
    <ListView.ItemContainerStyle> 
     <Style 
      TargetType="ListViewItem"> 
      <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="{ThemeResource SystemControlHighlightListMediumBrush}" 
      SelectedPressedBackground="{ThemeResource SystemControlHighlightListAccentHighBrush}" 
      DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}" 
      DragOpacity="{ThemeResource ListViewItemDragThemeOpacity}" 
      ReorderHintOffset="{ThemeResource ListViewItemReorderHintThemeOffset}" 
      HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" 
      VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" 
      ContentMargin="{TemplateBinding Padding}" 
      CheckMode="Inline"/> 
    </ControlTemplate> 
+2

また、このスタイルを使用してSelectedItemのBorderBrushを変更する方法はありますか? –

-2

を私はすでに別の場所にこの質問に答えていますこれをチェックしてください! UWP gridview item selection style

+1

それは確かにうまくいくかもしれませんが、私は私の答えがもっと好きで、あなたのことをお勧めしません。 :) –

+0

あなたの答えをありがとう、フィリップ。私はすでにあなたがそれを提示した方法でxamlを準備しました。リカルドのコードは、問題を解決するために私をさらに一歩進めました。私は両方の答えに投票しましたが、私は彼を選んでいます。もうお二人に感謝します。 – phm

関連する問題