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

时间:2012-02-08 15:22:13

标签: c# wpf brush

我有一个ImageBrush和一个SolidColorBrush。 问题是我现在想要用这些属性设置我的画布背景。

我可以轻松地将我的背景设置为我的ImageBrush或我的SolidColorBrush,但我可以进行某种合并吗? 问题是我的ImageBrush.Stretch设置为Uniform,所以我可以看到背后的颜色! (“填充”不是这种情况)

现在,Brush是一个抽象类,所以我想要的解决方案就是对它进行扩展,但这对我来说听起来很简单和常见的事情来说真的很多......

没有其他解决方案吗?

1 个答案:

答案 0 :(得分:1)

这个怎么样,虽然它的缺点是图像的绝对大小,更重要的是宽高比被忽略了。但它可能会给你一个提示。

<Canvas>
    <Canvas.Background>
        <DrawingBrush>
            <DrawingBrush.Drawing>
                <DrawingGroup>
                    <GeometryDrawing Brush="Orange">
                        <GeometryDrawing.Geometry>
                            <RectangleGeometry Rect="0,0,1,1"/>
                        </GeometryDrawing.Geometry>
                    </GeometryDrawing>
                    <ImageDrawing ImageSource="C:\Users\Public\Pictures\Sample Pictures\Desert.jpg" Rect="0.2,0.2,0.6,0.6" />
                </DrawingGroup>
            </DrawingBrush.Drawing>
        </DrawingBrush>
    </Canvas.Background>
</Canvas>