C# 生成要用作ListBox背景色的连续颜色集合
您好,我想对列表框的每个项目依次应用一定数量的灰色,即从亮到暗。到目前为止,我的方法是-C# 生成要用作ListBox背景色的连续颜色集合,c#,listbox,windows-phone,C#,Listbox,Windows Phone,您好,我想对列表框的每个项目依次应用一定数量的灰色,即从亮到暗。到目前为止,我的方法是- public class ColorToBrushConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var random = new Ran
public class ColorToBrushConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var random = new Random();
int randomNumber = (int)random.Next(20,256) ;
byte b = (byte)randomNumber;
Color blueish = Color.FromArgb(255,b, b, b);
return new SolidColorBrush((Color)blueish);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new System.NotImplementedException();
}
}
我能够生成任意数量的灰色,但我需要从光线到黑暗的感觉。请为我提供更正方法的建议据我所知,要产生从亮到暗的感觉,您需要连续的颜色代码,它可以基于您转换为颜色的值。所以随机性在这里不起作用。您需要传递下一个颜色代码值,例如,对于每个项目,增加变量b的值,然后生成颜色。希望这有帮助。您可能想移动
var random=new random()将>编码到静态字段中。也不知道为什么在不使用值
参数的情况下使用值转换器。我正在使用转换器,以便为列表框的每个成员调用此代码块。我还需要将计算出的颜色转换成SolidColorBrush@MickyOK。正常情况下,这是一个参数的函数,所以当你上下滚动时,你可能会发现事物突然改变颜色?不确定您是否知道列表中有多少项?如果是这样,请为您觉得合适的b
选择一个最小值和最大值,然后将项目数投影到最小值和最大值之间的范围。例如:byte min=100;字节最大值=200;int numberOfItems=20;对于(int index=1;index请参考此图,我希望使用不同的灰色阴影获得相同的感觉