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 に答える