2012-02-08 19 views
11

Chciałbym wiedzieć, jak dodać styl, gdy zaznaczono element listy. Mam następujący listbox:Styl listBox Wybrany element na telefonie z systemem Windows

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

i mam również DataTemplate dla pola listy.

<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> 

W momencie, gdy wybieram pozycję z listy, nie ma zmiany koloru.

Odpowiedz

12

Musisz zmienić styl szablonu ListBoxItem, który generuje ListBox dla każdego renderowanego elementu. Zaktualizowany szablon musi dostosować wybrany stan wizualny. Możesz następnie skojarzyć ten nowy szablon z usługą ListBox za pośrednictwem właściwości .

Jest dobry poradnik, z kodu źródłowego do pobrania tutaj:

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

+0

+1 Bardzo zasobów. – loyalpenguin

Powiązane problemy