2012-02-08 171 views
11

我想知道如何在选择列表框的项目时添加样式。 我有以下列表框:列表框样式在windows phone上选择的项目

<ListBox x:Name="ListBoxDays" 
         VerticalAlignment="Top" 
         ItemTemplate="{StaticResource WeekDayTemplate}" 
         ItemsSource="{Binding WeekDayList}" /> 

我也有一个DataTemplate到列表框中。

<phone:PhoneApplicationPage.Resources> 
     <DataTemplate x:Key="WeekDayTemplate"> 
      <StackPanel x:Name="stackPanel" Orientation="Horizontal" Width="400" Margin="12,0,0,10" Height="100" > 
       <StackPanel VerticalAlignment="Center" Orientation="Vertical"> 
        <TextBlock Text="{Binding WeekDayName}" Style="{StaticResource PhoneTextExtraLargeStyle}" TextWrapping="Wrap" TextTrimming="WordEllipsis" Foreground="{StaticResource PhoneRadioCheckBoxPressedBorderBrush}" UseLayoutRounding="True" /> 
        <TextBlock Text="{Binding ShortDate}" Style="{StaticResource PhoneTextTitle2Style}" TextWrapping="Wrap" TextTrimming="WordEllipsis" Foreground="{StaticResource PhoneBorderBrush}" Margin="25,0,12,0" />      
       </StackPanel> 
      </StackPanel>    
     </DataTemplate>     
    </phone:PhoneApplicationPage.Resources> 

当我选择列表框中的一个项目时,没有发生颜色变化。

回答

12

您必须更改ListBox为其呈现的每个项目生成的模板ListBoxItem的样式。您更新的模板需要自定义选定的可视状态。然后,您可以通过ListBox.ItemContainerStyle属性将此新模板与您的ListBox相关联。

有一个很好的教程,用源代码下载,在这里:

http://windowsphonegeek.com/tips/How-to-customize-the-WP7-ListBox-Selected-Item--Part1-Control-Template

+0

+1很好的资源。 – loyalpenguin 2012-02-08 18:30:59