2011-09-23 54 views
0

在silverlight中,我們通常可以創建聊天,但是我需要根據以下要求創建BAR聊天。需要在BAR中顯示不同的顏色 - 使用silverlight聊天?

例如: 學生分數爲50,70,60,90 .....就像那樣,基於標記我需要在酒吧中創建不同的顏色chat.below> 50表示紅色,> 70指琥珀色,> 90是指綠色...

我需要不同顏色的基礎上的標記酒吧聊天,顯示...

回答

0

使用的IValueConverter是一個選擇。

<Grid x:Name="LayoutRoot" Background="Gray"> 
     <Grid.Resources> 
      <local:NumberToBrushConverter x:Key="NumberToBrushConverter" /> 
     </Grid.Resources> 
     <ListBox x:Name="List1"> 
      <ListBox.ItemContainerStyle> 
       <Style TargetType="ListBoxItem"> 
        <Setter Property="Padding" Value="0" /> 
       </Style> 
      </ListBox.ItemContainerStyle> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <Grid Background="{Binding Converter={StaticResource NumberToBrushConverter}}"> 
         <TextBlock Text="{Binding}" /> 
        </Grid> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 
    </Grid> 

而後面的代碼:

int[] numbers = new int[] { 10, 20, 30 }; 
List1.ItemsSource = numbers; 

而且ValueConverter類:

public class NumberToBrushConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     if (value is int) 
     { 
      switch ((int)value) 
      { 
       case 10: return new SolidColorBrush(Colors.Red); 
       case 20: return new SolidColorBrush(Colors.Green); 
       case 30: return new SolidColorBrush(Colors.Blue); 
      } 
     } 

     return Colors.Transparent; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     return null; 
    } 
} 
相關問題