0
在silverlight中,我們通常可以創建聊天,但是我需要根據以下要求創建BAR聊天。需要在BAR中顯示不同的顏色 - 使用silverlight聊天?
例如: 學生分數爲50,70,60,90 .....就像那樣,基於標記我需要在酒吧中創建不同的顏色chat.below> 50表示紅色,> 70指琥珀色,> 90是指綠色...
我需要不同顏色的基礎上的標記酒吧聊天,顯示...
在silverlight中,我們通常可以創建聊天,但是我需要根據以下要求創建BAR聊天。需要在BAR中顯示不同的顏色 - 使用silverlight聊天?
例如: 學生分數爲50,70,60,90 .....就像那樣,基於標記我需要在酒吧中創建不同的顏色chat.below> 50表示紅色,> 70指琥珀色,> 90是指綠色...
我需要不同顏色的基礎上的標記酒吧聊天,顯示...
使用的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;
}
}