我有一个ImageBrush和一个SolidColorBrush。问题是,我现在想用这些属性设置我的画布背景。
我可以很容易地将背景设置为ImageBrush或SolidColorBrush,但我可以进行某种合并吗?问题是我的ImageBrush.Stretch设置为"均匀",这样我就可以看到后面的背景色了!("填充"不会是这种情况)
现在,Brush是一个抽象类,所以我想的解决方案是扩展它,但对于一个听起来简单而常见的东西来说,这确实是一项艰巨的工作…
难道没有其他解决方案吗?
这是怎么回事,尽管它的缺点是忽略了图像的绝对大小,更重要的是,忽略了纵横比。但它可能会给你一个提示。
<Canvas>
<Canvas.Background>
<DrawingBrush>
<DrawingBrush.Drawing>
<DrawingGroup>
<GeometryDrawing Brush="Orange">
<GeometryDrawing.Geometry>
<RectangleGeometry Rect="0,0,1,1"/>
</GeometryDrawing.Geometry>
</GeometryDrawing>
<ImageDrawing ImageSource="C:UsersPublicPicturesSample PicturesDesert.jpg" Rect="0.2,0.2,0.6,0.6" />
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Canvas.Background>
</Canvas>