Вопрос:
Я пытаюсь сделать некоторые случайные цвета в 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(); }
Если я ввожу нормальные значения, такие как 1,2,3… ect в Color.FromRgb(), это работает, но почему это не случайная работа?
Лучший ответ:
Color.FromRgb принимает байты как аргументы, поэтому вы должны Color.FromRgb свои значения:
Brush brush = new SolidColorBrush(Color.FromRgb((byte)r.Next(1, 255), (byte)r.Next(1, 255), (byte)r.Next(1, 233))); Ответ №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)));