在WPF中设置VisualBrush的边界

时间:2014-06-04 20:54:56

标签: c# wpf region visualbrush hatchstyle

有一个蓝色矩形,其中填充了自定义VisualBrush(左图)。一条线穿过矩形。如何修剪画笔以获得正确图像的形状。

enter image description here

1 个答案:

答案 0 :(得分:0)

查看LinearGradientBrush。您希望对自定义的VisualBrush使用类似的操作。

    <Rectangle Width="100" Height="200">
        <Rectangle.Fill>
            <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="Blue" Offset="0"/>
                <GradientStop Color="Blue" Offset="0.405"/>
                <GradientStop Color="Black" Offset="0.405"/>
                <GradientStop Color="Black" Offset="0.722"/>
            </LinearGradientBrush>
        </Rectangle.Fill>
    </Rectangle>

我不知道您的自定义画笔是什么,但是如果您允许它与渐变画笔一样工作。

另一种选择是实际上有一个两个矩形,中间有一个Separator,它们每个都有一个单独的渐变画笔。然后红线实际上是分隔符背景颜色。

    <DockPanel Width="100" Height="200">
        <Rectangle DockPanel.Dock="Top" Height="100" Margin="0">
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="Black" Offset="1"/>
                    <GradientStop Color="White"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>
        <Separator Height="2" DockPanel.Dock="Top" Background="Red" Margin="0"></Separator>
        <Rectangle Margin="0" Fill="Black"/>
    </DockPanel>