我想改变每个listboxitem增加边框的颜色os背景。
<ListBox.ItemTemplate>
<DataTemplate>
<border x:name: border>
<ListBoxItem ItemSource={Binding Example}>
</ListBoxItem>
</border>
任何想法?
答案 0 :(得分:0)
首先检查this link,了解如何使用转换器。
然后在你的XAML中,像这样写下你的边框
<Border BorderBrush="{Binding Converter=ColorConverter}">
....
<Border>
将转换器代码修改为此类
public class ColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
//Define some random colors
Color[] colors = { Colors.Blue, Colors.Brown, Colors.Cyan, Colors.Green, Colors.Magenta, Colors.Orange, Colors.Purple, Colors.Yellow, Colors.LightGray };
return colors[(new Random()).Next(8)];
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
}
}
因此,此代码动态返回其中一种颜色。并且有机会持续获得相同的颜色。顺便说一句,我没有测试上面的代码。
答案 1 :(得分:0)
“IValueConverter”的TypeConverter不支持转换
当我像上面那样放置边框会导致此错误。
这是我的完整代码
<ItemsControl x:Name="listaAdd" ItemsSource="{Binding sample}" Grid.Row="0" Margin="0,221,0,0" Foreground="White" Background="#FF5B5B5B" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch" Grid.Row="1" Width="480" >
<Border x:Name="borda" BorderBrush="{Binding Converter=ColorConverter}" >
<ListBoxItem x:Name="listSelected" Foreground="White" IsSelected="True" VerticalAlignment="Center" FontSize="{StaticResource PhoneFontSizeLarge}" Content="{Binding Nome}" Background="{x:Null}" HorizontalContentAlignment="Left" Height="80" DoubleTap="listSelected_DoubleTap">
</ListBoxItem>
</Border>
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu x:Name="subMenulist">
<Button Grid.Column="1" Content="delete" BorderThickness="0" Margin="0" Background="White" Foreground="#FF1A739D" FontSize="32" HorizontalContentAlignment="Left">
</Button>
<Button Grid.Column="1" Content="compartilhar" Margin="0,0,0,0" x:Name="btnShare" BorderThickness="0" Background="White" Foreground="#FF1A739D" FontSize="32" HorizontalContentAlignment="Left">
</Button>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>