3

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

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

现在,Brush 是一个抽象类,所以我想的解决方案是扩展它,但对于一个听起来简单而常见的东西来说,这确实是很多工作......

没有其他解决方案吗?

4

1 回答 1

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>
于 2012-02-08T16:02:15.213 回答