这两个表达式是否应该产生大致相同的颜色?
Color.FromArgb(255, 255, 255, (byte)0.25 * 255))
Color.FromScRgb(1.0f, 1.0f, 1.0f, 0.25f))
这个测试程序展示了它们以看似不同的 alpha 值显示:
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Shapes;
namespace Test_FromArgb_FromScRbg
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var panel = new StackPanel();
Content = panel;
panel.Children.Add(
new Rectangle()
{
Width = 100,
Height = 100,
Fill = new SolidColorBrush(
Color.FromArgb(
255,
255,
255,
(byte)0.25 * 255))
});
panel.Children.Add(
new Rectangle()
{
Width = 100,
Height = 100,
Fill = new SolidColorBrush(
Color.FromScRgb(
1.0f,
1.0f,
1.0f,
0.25f))
});
}
}
}
这是演示程序在我的系统上的样子: