Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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# 将矩形填充绑定到lineargradientbrush_C#_Wpf - Fatal编程技术网

C# 将矩形填充绑定到lineargradientbrush

C# 将矩形填充绑定到lineargradientbrush,c#,wpf,C#,Wpf,我有矩形,填充颜色由RGB滑块的MultiBindingConverter决定 <Rectangle.Fill> <SolidColorBrush> <SolidColorBrush.Color> <MultiBinding Converter="{StaticResource RgbConverter}">

我有矩形,填充颜色由RGB滑块的MultiBindingConverter决定

        <Rectangle.Fill>
            <SolidColorBrush>
                <SolidColorBrush.Color>
                    <MultiBinding Converter="{StaticResource RgbConverter}">
                        <Binding Path="Value" ElementName="RSlider" />      
                        <Binding Path="Value" ElementName="GSlider" />
                        <Binding Path="Value" ElementName="BSlider" />
                    </MultiBinding>
                </SolidColorBrush.Color>
            </SolidColorBrush>
        </Rectangle.Fill>

但是没有运气。如何做到这一点?

您可以直接绑定到其他矩形的Fill.Color属性,如下所示-

假设您的第一个矩形名称是rectangle1

<Rectangle.Fill>
  <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
     <GradientStop Offset="0" Color="Black" />
     <GradientStop Offset="1" Color="{Binding ElementName=rct, Path=Fill.Color}" />
   </LinearGradientBrush>
</Rectangle.Fill>

如果我理解正确,您的转换器将返回
颜色。您应该能够以与指定SolidColorBrush相同的方式指定GradientStop的颜色:



您应该能够简化此过程,而不必使用转换器:Thnx@AndrewS我已经更新了我的答案。不知道我在写那个转换器时在想什么。:)选择它是因为它的简单:)伟大的工作RV1987,非常感谢
    <ObjectDataProvider ObjectInstance="{StaticResource ResourceKey=cColor}" MethodName="ChosenColor" x:Key="chColor" >
    </ObjectDataProvider>
    public static Color ChosenColor(this Rectangle rect)
    {
        return ((SolidColorBrush)rect.Fill).Color;
    }
<Rectangle.Fill>
  <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
     <GradientStop Offset="0" Color="Black" />
     <GradientStop Offset="1" Color="{Binding ElementName=rct, Path=Fill.Color}" />
   </LinearGradientBrush>
</Rectangle.Fill>