2012-03-27 59 views
2

我想設置的SelectItem前景與差異的顏色,LongListSelector 這是我的XAML:如何設置的SelectItem前景在LongListSelector

<toolkit:LongListSelector x:Name="locations" Background="Transparent" Margin="0" 
        GroupViewOpened="LongListSelector_GroupViewOpened" 
        GroupViewClosing="LongListSelector_GroupViewClosing" 
        SelectionChanged="locations_SelectionChanged"> 
       <toolkit:LongListSelector.GroupItemsPanel> 
        <ItemsPanelTemplate> 
         <toolkit:WrapPanel Orientation="Horizontal"/> 
        </ItemsPanelTemplate> 
       </toolkit:LongListSelector.GroupItemsPanel> 
       <toolkit:LongListSelector.GroupItemTemplate> 
        <DataTemplate> 
         <Border Background="{Binding Converter={StaticResource GroupBackground}}" 
            Width="99" Height="99" Margin="6" IsHitTestVisible="{Binding HasItems}"> 
          <TextBlock Text="{Binding Key}" 
            FontFamily="{StaticResource PhoneFontFamilySemiBold}" 
            FontSize="48" 
            Margin="8,0,0,0" 
            Foreground="{Binding Converter={StaticResource GroupForeground}}"           
            VerticalAlignment="Bottom"/> 
          <Border.Projection> 
           <PlaneProjection RotationX="-60"/> 
          </Border.Projection> 
         </Border> 
        </DataTemplate> 
       </toolkit:LongListSelector.GroupItemTemplate> 
       <toolkit:LongListSelector.GroupHeaderTemplate> 
        <DataTemplate> 
         <Border Background="Transparent" Margin="12,8,0,8"> 
          <Border Background="{StaticResource HighlightBrush}"  
             Padding="8,0,0,0" Width="62" Height="62"     
             HorizontalAlignment="Left"> 
           <TextBlock Text="{Binding Key}" 
             Foreground="#FFFFFF" 
             FontSize="48" 
             FontFamily="{StaticResource PhoneFontFamilySemiLight}" 
             HorizontalAlignment="Left" 
             VerticalAlignment="Bottom"/> 
          </Border> 
         </Border> 
        </DataTemplate> 
       </toolkit:LongListSelector.GroupHeaderTemplate> 
       <toolkit:LongListSelector.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Margin="20,0"> 
          <TextBlock Text="{Binding n}" Style="{StaticResource PhoneTextExtraLargeStyle}" 
             FontFamily="{StaticResource PhoneFontFamilySemiBold}" 
             Margin="12,5"/> 
         </StackPanel> 
        </DataTemplate> 
       </toolkit:LongListSelector.ItemTemplate> 
      </toolkit:LongListSelector> 

的LongListSelector沒有「ItemContainerStyle」,我不知道如何設置一個Style Resources,就像正常的listboxitem一樣。

回答

1

如果您編輯的ItemTemplate使用ContentControl中,而不是TextBlock的,所選擇的項目將使用手機口音刷(確保你不設置前景色爲內容控制):

<toolkit:LongListSelector.ItemTemplate> 
    <DataTemplate> 
     <StackPanel Margin="20,0"> 
      <ContentControl Text="{Binding n}" Style="{StaticResource PhoneTextExtraLargeStyle}" 
          FontFamily="{StaticResource PhoneFontFamilySemiBold}" 
          Margin="12,5"/> 
     </StackPanel> 
    </DataTemplate> 
</toolkit:LongListSelector.ItemTemplate> 

爲了能夠將其設置爲自定義顏色,我結束了覆蓋爲TemplatedListBoxItem構造並設置DefaultStyleKey:DefaultStyleKey = typeof(TemplatedListBoxItem);然後我設置了一個樣式TemplatedListBoxItem在System.Windows.xaml的ListBoxItem中的風格相匹配,除了選擇不同項目視覺狀態顏色。

相關問題