无法从 'double' 转换为 'byte'

cannot convert from 'double' to 'byte'

所以我正在制作一个应用程序,用户可以在其中使用滑块更改背景颜色。这是我尝试过的:

private void Slider_ValueChanged_1(object sender, RoutedPropertyChangedEventArgs<double> e)
{
    Window1.Background = new SolidColorBrush(Color.FromArgb(0, Slider1.Value, Slider2.Value, Slider3.Value));
}

但实际情况是这样的:

Error CS1503 Argument 2: cannot convert from 'double' to 'byte'

Error CS1503 Argument 3: cannot convert from 'double' to 'byte'

Error CS1503 Argument 4: cannot convert from 'double' to 'byte'

我尝试将它们转换为字节:

Window1.Background = new SolidColorBrush(Color.FromArgb(0, Convert.ToByte(Slider1.Value), Convert.ToByte(Slider2.Value), Convert.ToByte(Slider3.Value)));

但它却坏了

NullReferenceException: 对象引用未设置到对象的实例。

首先确保您要转换的值在 (0 - 255) 之间,方法是将滑块的 Maximum 设置为 255。

那就试试

new SolidColorBrush(Color.FromArgb(
    255, (byte)Slider1.Value, (byte)Slider2.Value, (byte)Slider3.Value));