【发布时间】:2014-06-06 10:02:02
【问题描述】:
我想在列表框中生成不同颜色的项目。例如 - 每个项目中不同颜色的矩形。我不能这样做。 到目前为止,我已经创建了一个这样的类
public class RandomColorGenerator
{
public Color randomBrush { get; set; }
private static Random randomColor = new Random();
private static uint[] uintColors =
{
0xFF34AADC,0xFFFF2D55,0xFF007AFF,0xFFFF9500,0xFF4CD964,
0xFFFFCC00,0xFF5856D6,0xFFFF3B30,0xFFFF4981,0xFFFF3A2D
};
public RandomColorGenerator()
{
randomBrush = generateRandomColor();
}
private static Color ConvertColor(uint uintCol)
{
byte A = (byte)((uintCol & 0xFF000000) >> 24);
byte R = (byte)((uintCol & 0x00FF0000) >> 16);
byte G = (byte)((uintCol & 0x0000FF00) >> 8);
byte B = (byte)((uintCol & 0x000000FF) >> 0);
return Color.FromArgb(A, R, G, B); ;
}
public static Color generateRandomColor()
{
return ConvertColor(uintColors[randomColor.Next(0, 9)]);
}
}
在 XAML 中
<ListBox x:Name="TestListBox" >
<ListBox.ItemTemplate>
<DataTemplate>
<Rectangle Margin="10" Height="100" Width="400" >
<Rectangle.Fill>
<SolidColorBrush Color="{Binding randomBrush,
Source={StaticResource colorgenerate}}">
</SolidColorBrush>
</Rectangle.Fill>
</Rectangle>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
做完这一切后,我得到了这样的结果-
重新启动应用后,我得到了这个
虽然我每次运行应用程序时都会获得随机颜色。但是一种颜色应用于所有矩形。
我不知道如何得到想要的结果。 我想要这样的东西-
任何帮助将不胜感激。
【问题讨论】:
-
你能分享一下你调用代码将颜色绑定到列表框的代码吗?我相信问题出在那儿
-
绑定发生在 XAML 中(如上所示)。我是 Windows Phone 开发的菜鸟。
-
您能发布您要绑定的资源“colorgenerate”吗?
-
@Code4A 你真的需要读一本书或一些关于 WP、XAML、MVVM 和绑定的教程。如果您打算进行更多的 WP/WPF 开发,这些事情都非常重要。我认为这是重要的教训。 :)
-
@yasen 好吧,今年夏天我将接受 C# 和 ASP.Net 方面的培训。在那之后,我一定会尝试 MVVM。我听说过很多。
标签: c# xaml windows-phone-8 listbox