我想有一個包含各種顏色的表。隨後的顏色應該顯着不同。根據這一點,填充相當大的表格的最佳方法是什麼?我想在重複相似的顏色之前使用大量不同的顏色。在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