Объединить ImageBrush и SolidColorBrush?(как фон холста) - PullRequest
2 голосов
/ 08 февраля 2012

У меня есть ImageBrush и SolidColorBrush.Дело в том, что теперь я хочу установить свой фон холста с этими свойствами.

Я могу легко установить свой фон либо на ImageBrush, либо на SolidColorBrush, но могу ли я выполнить своего рода слияние?Дело в том, что мой ImageBrush.Stretch установлен на Uniform, поэтому я могу видеть цвет фона позади!(Это не относится к «Fill»)

Теперь Brush - это абстрактный класс, поэтому я представляю решение, которое расширяет его, но это действительно большая работа для вещи, которая звучит просто иобщий для меня ...

Нет ли другого решения?

1 Ответ

1 голос
/ 08 февраля 2012

Как насчет этого, хотя недостатком является то, что абсолютный размер изображения и, что более важно, соотношение сторон игнорируется. Но это может дать вам подсказку.

<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>
...