带有彩色项目的 wpf 列表框
wpf listbox with colorized items
我正在制作一个为黑白图片着色的应用程序。
我有一个列表框,用于显示我当前的调色板。
十六进制代码很难被人类(至少我)阅读,这就是为什么我想为我的 ListBox 中的项目着色。
我的列表框现在看起来像这样:
作为我的意思的一个例子,我有一个简单的文本框,它被着色了:
System.Drawing.Color? color = cl.ColorFromHexString(Basecolor.Text);
if (color != null)
{
System.Drawing.Color col = (System.Drawing.Color)color;
this.Basecolor.Foreground = new SolidColorBrush(cl.ToMediaColor(col));
}
所以我的目标是为每个条目设置不同的颜色:
使用以下代码分配列表框项(可能不是最佳实践):
List<String> ColorStringPalette = new List<string>();
private void AddColorButton_Click(object sender, RoutedEventArgs e)
{
System.Drawing.Color? color = cl.ColorFromHexString(ColorHexCode.Text);
if (color != null)
{
if (!ColorStringPalette.Contains(ColorHexCode.Text))
{
ColorStringPalette.Add(ColorHexCode.Text);
}
ColorList.ItemsSource = ColorStringPalette;
}
}
为列表框的各个项目设置前景色的合适方法是什么?
你可以更改ItemTemplate并绑定Foreground(它需要刷但是会从字符串转换):
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Foreground="{Binding}"/>
</DataTemplate>
</ListBox.ItemTemplate>
我正在制作一个为黑白图片着色的应用程序。 我有一个列表框,用于显示我当前的调色板。
十六进制代码很难被人类(至少我)阅读,这就是为什么我想为我的 ListBox 中的项目着色。
我的列表框现在看起来像这样:
作为我的意思的一个例子,我有一个简单的文本框,它被着色了:
System.Drawing.Color? color = cl.ColorFromHexString(Basecolor.Text);
if (color != null)
{
System.Drawing.Color col = (System.Drawing.Color)color;
this.Basecolor.Foreground = new SolidColorBrush(cl.ToMediaColor(col));
}
所以我的目标是为每个条目设置不同的颜色:
使用以下代码分配列表框项(可能不是最佳实践):
List<String> ColorStringPalette = new List<string>();
private void AddColorButton_Click(object sender, RoutedEventArgs e)
{
System.Drawing.Color? color = cl.ColorFromHexString(ColorHexCode.Text);
if (color != null)
{
if (!ColorStringPalette.Contains(ColorHexCode.Text))
{
ColorStringPalette.Add(ColorHexCode.Text);
}
ColorList.ItemsSource = ColorStringPalette;
}
}
为列表框的各个项目设置前景色的合适方法是什么?
你可以更改ItemTemplate并绑定Foreground(它需要刷但是会从字符串转换):
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Foreground="{Binding}"/>
</DataTemplate>
</ListBox.ItemTemplate>