Размер переплета Холст фона - PullRequest
2 голосов
/ 28 февраля 2011

У меня есть холст, которому нужен графический фон с использованием пользовательских изображений различных размеров, но я хочу привязать высоту и ширину фонового изображения к некоторым свойствам где-нибудь. сейчас у меня есть изображение, отображаемое в качестве фона, но его размер фиксирован. Оказывается, что свойство width и height изображения и кисти изображения доступно только для чтения. Есть ли в любом случае привязать ширину и высоту?

p.s Я пробовал viewport, но он использует прямоугольный объект и его ширина и высота не являются свойствами зависимости. Затем я попытался использовать одну плитку области просмотра и поместить ее в прямоугольник, затем я могу изменить размер прямоугольника, чтобы добиться того, чего хочу, но я не могу понять, как поместить прямоугольник в качестве фона холста. Есть идеи? Заранее спасибо.

Ответы [ 2 ]

3 голосов
/ 28 февраля 2011

Простой способ - использовать VisualBrush в качестве фона для Canvas. Установите для параметра Растянуть значение Нет, а затем свяжите ширину и высоту Image в Visual

.
<Canvas ...>
    <Canvas.Background>
        <VisualBrush Stretch="None">
            <VisualBrush.Visual>
                <Image Source="SomeSource"
                       Stretch="Fill"
                       Width="{Binding ...}"
                       Height="{Binding ...}"/>
            </VisualBrush.Visual>
        </VisualBrush>
    </Canvas.Background>
    <!--...-->
</Canvas>
1 голос
/ 28 февраля 2011

Не могу сказать, что мне удалось точно следовать тому, что вы пытаетесь сделать, но вы можете использовать VisualBrush, чтобы поместить прямоугольник в качестве фона холста.

Я несколько уверен, чтоВы можете легко решить, что вы делаете, но я не мог понять, что вы пытаетесь сделать.

...