/ / Establezca un límite para VisualBrush en WPF - c #, wpf, region, visualbrush, hatchstyle

Establezca un límite para VisualBrush en WPF - c #, wpf, region, visualbrush, hatchstyle

Hay un rectángulo azul que se llena con una costumbre VisualBrush (imagen izquierda). Una línea pasa por el rectángulo. ¿Cómo puedo recortar el pincel para lograr la forma en la imagen correcta.

enter image description here

Respuestas

0 para la respuesta № 1

Mira el LinearGradientBrush. Desea utilizar hacer algo como esto para su VisualBrush personalizado.

    <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>

No sé cuál es tu pincel personalizado, pero si permites que funcione de manera similar al pincel de degradado.

La otra opción es tener dos rectángulos con un separador en medio y cada uno tiene un pincel de degradado separado. Entonces la línea roja sería realmente el color de fondo del separador.

    <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>