c# – 如何在wpf列表框的一行上更改前景色?
发布时间:2020-12-16 01:44:20 所属栏目:百科 来源:网络整理
导读:如何在wpf列表框中更改前景文本颜色(不是所选文本或选择的背景)?比方说,例如,我想把所有字母“a”项目设为绿色,所有字母“b”项目为红色等等?我如何以编程方式执行此操作,因为我在c#中添加它们?所有我能找到的是人们发布有关更改所选文本的内容,我想更改
如何在wpf列表框中更改前景文本颜色(不是所选文本或选择的背景)?比方说,例如,我想把所有字母“a”项目设为绿色,所有字母“b”项目为红色等等?我如何以编程方式执行此操作,因为我在c#中添加它们?所有我能找到的是人们发布有关更改所选文本的内容,我想更改前景文本的颜色,使其看起来更有条理.
另外,为什么stackoverflow会给我这个问题带来问题?说“不符合质量标准”的问题.我认为这是一个完全合法的问题.什么过滤器被置于这个问题上,使其不符合任何标准? 我希望这样做: string[] pics= Directory.GetFiles(@"C:","*.jpg"); foreach (string pic in pics) { CHANGE THE FOREGROUND COLOR TO RED lbxFileList.Items.Add(pic); } string[] vids= Directory.GetFiles(@"C:","*.mpg"); foreach (string vid in vids) { CHANGE THE FOREGROUND COLOR TO GREEN lbxFileList.Items.Add(vid); } 解决方法
将模板与转换器结合使用:
<ListBox x:Name="lbxFileList"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel> <TextBlock Text="{Binding Path=.}" ForeGround={Binding .,Converter={StaticResource ItemToBrushConverter}}/> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> 转换器应将您的项目转换为具有所需颜色的画笔: class FileNameToColorConverter : IValueConverter { public object Convert(object value,Type targetType,object parameter,CultureInfo culture) { return value.EndsWith("mpg") ? Brushes.Green : Brushes.Red; } public object ConvertBack(object value,CultureInfo culture) { throw new NotImplementedException(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |