C#WPF中的随机颜色

时间:2014-07-18 19:41:42

标签: c# wpf

我试图在WPF中制作一些随机颜色。

 Random r = new Random();
    public MainWindow()
    {
        InitializeComponent();
        Title = Convert.ToString(DateTime.Now); // Der Titel bekommt den Wert des aktuellen Datum

    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {

        MainWindow mainwindow_1 = new MainWindow();
        Brush brush = new SolidColorBrush(Color.FromRgb(r.Next(1,255),r.Next(1,255),r.Next(1,233)));
        mainwindow_1.txtbox_1.Background = brush; 
        mainwindow_1.Show();


    }

如果我在Color.FromRgb()中输入正常值,如1,2,3 ...等,它可以工作,但为什么不随机工作?

2 个答案:

答案 0 :(得分:7)

Color.FromRgb接受字节作为参数,因此您必须强制转换值:

Brush brush = new SolidColorBrush(Color.FromRgb((byte)r.Next(1, 255), 
              (byte)r.Next(1, 255), (byte)r.Next(1, 233)));

答案 1 :(得分:1)

这一行将int个参数传递给需要byte参数的函数:

Brush brush = new SolidColorBrush(Color.FromRgb(r.Next(1,255),r.Next(1,255),r.Next(1,233)));

将参数转换为字节以避免编译错误:

Brush brush = new SolidColorBrush(Color.FromRgb((byte)r.Next(1,255),(byte)r.Next(1,255),(byte)r.Next(1,233)));