通常、項目が選択されると青色でハイライトされます。
このハイライトカラーを変えるには ControlTemplate を変更します。
WPFでは、ControlTemplate の Trigger 要素とSetter 要素で選択時のハイライトカラーを任意の色に設定します。
また、Silverlight では、VisualStateManager 要素の VisualStateGroup 要素内で選択時のハイライトカラーを設定します。
下記は、ハイライトカラーを赤(#FFE94D4D)に設定する例です。
XAMLの例
<Window.Resources> <Style x:Key="SimpleListBoxItem" TargetType="ListBoxItem"> <Setter Property="FocusVisualStyle" Value="{x:Null}" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ListBoxItem"> <Border Name="Border" Padding="1" SnapsToDevicePixels="true"> <ContentPresenter /> </Border> <ControlTemplate.Triggers> <Trigger Property="IsSelected" Value="true"> <Setter TargetName="Border" Property="Background" Value="#FFE94D4D"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </Window.Resources> <Grid> <ListBox ItemContainerStyle="{StaticResource SimpleListBoxItem}"> <ListBoxItem>リンゴ</ListBoxItem> <ListBoxItem>ミカン</ListBoxItem> <ListBoxItem IsSelected="True">バナナ</ListBoxItem> <ListBoxItem>パイナップル</ListBoxItem> <ListBoxItem>スイカ</ListBoxItem> <ListBoxItem>グレープフルーツ</ListBoxItem> </ListBox> </Grid> SilverlightのXAMLの例 <UserControl.Resources> <Style x:Key="ListBoxItemStyle1" TargetType="ListBoxItem"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ListBoxItem"> <Grid Background="{TemplateBinding Background}"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="SelectionStates"> <VisualState x:Name="Unselected" /> <VisualState x:Name="Selected"> <Storyboard> <DoubleAnimation Duration="0" To=".75" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="fillColor"/> <ColorAnimation Duration="0" To="#FFE94D4D" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="fillColor" d:IsOptimized="True"/> </Storyboard> </VisualState> <VisualState x:Name="SelectedUnfocused"/> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Rectangle x:Name="fillColor" Fill="#FFBADDE9" IsHitTestVisible="False" Opacity="0" RadiusY="1" RadiusX="1"/> <ContentPresenter x:Name="contentPresenter" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}"/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </UserControl.Resources> <Grid x:Name="LayoutRoot"> <sdk:Label Height="28" HorizontalAlignment="Left" Margin="12,12,0,0" Name="Label1" VerticalAlignment="Top" Width="616" Content="14.ハイライトカラーを設定する" FontSize="16" /> <ListBox ItemContainerStyle="{StaticResource ListBoxItemStyle1}"> <ListBoxItem Content="リンゴ" /> <ListBoxItem Content="ミカン" /> <ListBoxItem Content="バナナ" /> <ListBoxItem Content="パイナップル" /> <ListBoxItem Content="スイカ" /> <ListBoxItem Content="グレープフルーツ" /> </ListBox> </Grid>