合并ImageBrush和SolidColorBrush?(作为画布的背景)



我有一个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>

最新更新