2012-02-08 185 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