我想有一个包含各种颜色的表。随后的颜色应该显着不同。根据这一点,填充相当大的表格的最佳方法是什么?我想在重复相似的颜色之前使用大量不同的颜色。在C中不同颜色的表#
2
A
回答
1
这里是我的解决方案(在那一个Silverlight兼容的一个)。
IEnumerable<Color> VaryingColors(int seedIndex)
{
int maxValue = 1 << 24;
int index = seedIndex % maxValue;
while (true)
{
byte r = 0;
byte g = 0;
byte b = 0;
for (int i = 0; i < 24; i++)
{
if ((index & (1 << i)) != 0)
{
switch (i % 3)
{
case 0: r |= (byte)(1 << (23 - i)/3); break;
case 1: g |= (byte)(1 << (23 - i)/3); break;
case 2: b |= (byte)(1 << (23 - i)/3); break;
}
}
}
yield return Color.FromArgb(0xFF, r, g, b);
index = (index + 1) % maxValue;
}
}
这是一个用法示例。像这样创建一个新的Silverlight应用程序并添加ListBox
MainPage.xaml中: -
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Rectangle Width="200" Height="20" Fill="{Binding}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
在MainPage.xaml.cs构造包括这样的代码: -
DataContext = VaryingColors(0).Take(100).Select(c => new SolidColorBrush(c));
颜色发生器将产生全部1600万种可能的颜色,并且首先操作RGB组件的最重要位。可能需要多一点工作,有些相邻颜色的出现与序列的其余部分比较相似,尽管它们总是明显不同。
一个增强功能可能是在序列上添加一个过滤器,以放弃太暗或饱和度非常低的颜色。事实上,可能会添加另一个过滤器,以放弃序列中与色彩接近的色彩。
0
你可以在C#中使用GridView,然后使用
GridView_RowDataBound(object sender, GridViewRowEventArgs e)
方法更改为任何颜色你需要的单元格的背景颜色。
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[4].BackColor = System.Drawing.Color.FromName("#EE3333"); // makes the 4th cell red
e.Row.BackColor = System.Drawing.Color.ForestGreen; // Makes the whole row Green
}
使用此方法,您可以使用RGB颜色将单元格变为您喜欢的颜色。
+0
对不起,我想你没有理解我的问题:-) – Jamie
相关问题
- 1. Seaborn图表颜色与调色板指定的颜色不同
- 2. 不同的颜色在VB.NET
- 3. UITextView中的不同颜色
- 4. 不同颜色
- 5. 颜色绘制不同的颜色matplotlib
- 6. Devexpress列标题颜色(每列不同颜色),winform c#
- 7. C#圆形颜色到列表中的颜色
- 8. 不同的颜色名称
- 9. 不同颜色的布局
- 10. 不同的背景颜色
- 11. jQuery的不同颜色
- 12. 用不同的颜色
- 13. 不同颜色的UISlider
- 14. UIBezierPath不同的颜色
- 15. C#Winforms DatagridView - 为不同行设置不同颜色的按钮
- 16. tableview在不同的ios版本中显示不同的颜色
- 17. 不同的背景颜色在Android ListView中不同的行
- 18. 引导:不同列的不同颜色
- 19. 可可NSBezierPath - 中风。颜色不同于预定义的颜色
- 20. 谷歌图表条不同颜色
- 21. DataGridView中的不同颜色的线(DGV)
- 22. 添加新的线用不同的颜色来RichTextBox的在c#
- 23. 在Mathematica中绘制用不同颜色表格的不同条目
- 24. 更新C#中的列表框颜色#
- 25. 在XNA不同的颜色绘制的字体/ C#
- 26. 不同颜色的TextView在XML
- 27. 如何在使用不同的颜色
- 28. 颜色具有不同的性质在
- 29. 不同的颜色在一个UILabel
- 30. UITextField中的两种不同颜色
定义“大”,定义“显着不同”? – AnthonyWJones
大,例如1000种颜色。差异显着 - 我想获得例如红色,蓝色,绿色,而不是红色,深红色,紫色;-)很快,我想避免重复类似的颜色。 – Jamie
我使用HSL/HSV颜色获得了很好的效果,并将它们转换回RGB。你保持SL/SV固定并通过H值。 – xanatos