C# 以编程方式更改列表框项目背景色
我很难理解XAML与C#的关系。 我的问题是,我有两个不同的C# 以编程方式更改列表框项目背景色,c#,wpf,C#,Wpf,我很难理解XAML与C#的关系。 我的问题是,我有两个不同的List对象,其中一个List的背景色为“蓝色”,另一个的背景色为“红色”。之后,我想在我的列表框中显示它 我的XAML列表框代码: <ListBox x:Name="ListBox1" HorizontalAlignment="Left" Height="240" Margin="81,80,0,0" VerticalAlignment="Top" Width="321" BorderBrush="#FF6C6C6C" Sele
List
对象,其中一个List
的背景色为“蓝色”,另一个的背景色为“红色”。之后,我想在我的列表框中显示它
我的XAML列表框代码:
<ListBox x:Name="ListBox1" HorizontalAlignment="Left" Height="240" Margin="81,80,0,0" VerticalAlignment="Top" Width="321" BorderBrush="#FF6C6C6C" SelectionMode="Single" SelectionChanged="ListBoxSelectionChanged">
</ListBox>
需要50%的声誉才能作为答案添加评论 为什么不能用xaml来做呢
<ListBox x:Name="ListBox1" Background="Red">
</ListBox>
只需添加背景属性,这将为列表框着色
但是如果你想在wpf方面做得更好,我建议你学习数据绑定,这样你就不需要手动将对象添加到列表框中
然后再看一下MVVM给你:
foreach (var object1 in objects1)
{
Thread.Sleep(1);
listBox1.Items.Add(new ListBoxItem { Content = object1.label, Background = Brushes.Blue });
}
foreach (var object2 in objects2)
{
Thread.Sleep(1);
ListBox2.Items.Add(new ListBoxItem { Content = objects2.label, Background = Brushes.Red });
//I want these Objects to be red
}
更好的方法是使用数据绑定、样式等。请参阅。在WPF中,您必须使用绑定,这样做
Items.Add()
-这种方式已经过时了。而那线程。睡眠(1)
真臭。您可以使用async/await
和await Task.Delay()
来避免UI暂停。我不能这样做,因为我在同一个列表框中有两个不同的列表,但我希望每个列表都有不同的颜色。啊,我看到了,您能改变它显示的行:ListBox2.Items.Add(objects2.label);这让我相信你有两个列表框
foreach (var object1 in objects1)
{
Thread.Sleep(1);
listBox1.Items.Add(new ListBoxItem { Content = object1.label, Background = Brushes.Blue });
}
foreach (var object2 in objects2)
{
Thread.Sleep(1);
ListBox2.Items.Add(new ListBoxItem { Content = objects2.label, Background = Brushes.Red });
//I want these Objects to be red
}