【问题标题】:Merge an ImageBrush and a SolidColorBrush ? (as a Background of a Canvas)合并 ImageBrush 和 SolidColorBrush ? (作为画布的背景)
【发布时间】:2012-02-08 15:22:13
【问题描述】:

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

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

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

没有其他解决办法吗?

【问题讨论】:

    标签: c# wpf brush


    【解决方案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>
    

    【讨论】:

    • 我想在代码隐藏中做到这一点!在 xaml 中,我得到了以下听起来对我来说更简单的代码:
    • 当然,但它不是“合并”画笔。您可能想将其定义为资源左右。
    猜你喜欢
    • 2015-07-31
    • 2023-03-07
    • 2022-06-14
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多