Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 补偿是如何工作的_C#_.net_Wpf_Xaml - Fatal编程技术网

C# 补偿是如何工作的

C# 补偿是如何工作的,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我想知道,在GradientStop中,偏移是如何在WPF中工作的 <Grid.Background> <LinearGradientBrush> <GradientStopCollection> <GradientStop Color="Black" Offset="0" /> <GradientStop Color="Red" Off

我想知道,在GradientStop中,偏移是如何在WPF中工作的

 <Grid.Background>
        <LinearGradientBrush>
            <GradientStopCollection>
                <GradientStop Color="Black" Offset="0" />
                <GradientStop Color="Red" Offset="1" />
            </GradientStopCollection>
        </LinearGradientBrush>
 </Grid.Background>

我很确定渐变就是在这个点上完全切换到下一种颜色的。比如:

<Rectangle Width="200" Height="100">
  <Rectangle.Fill>
    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
      <GradientStop Color="Yellow" Offset="0.0" />
      <GradientStop Color="Red" Offset="0.25" />
      <GradientStop Color="Blue" Offset="0.75" />
      <GradientStop Color="LimeGreen" Offset="1.0" />
    </LinearGradientBrush>
  </Rectangle.Fill>
</Rectangle>

从0到25%的矩形将从黄色变为红色。25%到75%的矩形将从红色流向蓝色。从75%-100%矩形将为蓝色到灰绿色


因此,在您的示例中,颜色将从黑色变为红色,颜色仅在开始时为完全黑色,在结束时为完全红色。

起始点的默认值为0,0,终点的默认值为1,1。由于您尚未指定StartPoint和EndPoint,因此将隐式使用这些值。看

最后,需要注意的是,笔刷具有默认为RelativeToBoundingBox的BrushMappingMode属性。由于尚未指定,因此将使用RelativeToBoundingBox,并且偏移将确定端点之间颜色的位置。另一个选项是绝对值,这是端点起始点的大小开始起作用的地方

使用BrushMappingMode RelativeToBoundingBox在偏移0.3处指定渐变停止时,指定的是起点和终点之间30%的线性渐变颜色