我只是想知道是否有办法从cs文件设置绘图的Fill属性?我有一个画笔如下: -
if (resourceObject is DrawingBrush)
{
DrawingBrush iconBrush = resourceObject as DrawingBrush;
//Is there a way to set fill property in iconBrush.Drawing
// e.g iconBrush.Drawing.setValue(Fill, "Gray");
DrawingImage image = new DrawingImage(iconBrush.Drawing);
resourceObject = image;
}
如果没有,你能否建议我这样做的其他方法?这是绘图画笔的代码: -
<DrawingBrush x:Key="ML_ICON">
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing Brush="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=uiEntityViews:CanvasLinkConnectionPointBaseView}, Path=MeSiteColor}" Geometry="F1 M0,25 L25,50, 50,25 25,0z">
<GeometryDrawing.Pen>
<Pen DashCap="Triangle" EndLineCap="Flat" LineJoin="Bevel" MiterLimit="10" StartLineCap="Flat" Thickness="5">
<Pen.Brush>
<LinearGradientBrush>
<GradientStop Color="#FF657783" Offset="0"/>
<GradientStop Color="White" Offset="0.5"/>
<GradientStop Color="#FF2C4758" Offset="1"/>
</LinearGradientBrush>
</Pen.Brush>
<Pen.DashStyle>
<DashStyle/>
</Pen.DashStyle>
</Pen>
</GeometryDrawing.Pen>
</GeometryDrawing>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
答案 0 :(得分:0)
DrawingBrush使用某种图像来填充它所应用的形状。因此,设置单独的填充值没有多大意义,因为它是不可见的。
我假设您正在使用具有某种透明度的图像,因此您希望透明部分以某种颜色显示?
我可以想到两种方法:
一般情况下,我会选择第二个 - 因为它只需要绘制一次背景。
答案 1 :(得分:0)
有不同类型的画笔 es:实心,渐变,图像...... 对于 SolidColorBrush ,它将颜色作为构造函数中的参数。
SolidColorBrush myBrush = new SolidColorBrush(Colors.Red);
以下是完整的规范WPF Brushes Overview