Canvas с VisualBrush неправильно отображает изображение - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть Canvas, в котором я устанавливаю свойство Background для VisualBrush, состоящего из Image. Я связываю данные «Ширина и высота холста» с шириной и высотой изображений. Вот XAML:

            <Canvas x:Name="imageCanvas" ClipToBounds="True" Width="{Binding ActualWidth, ElementName=dataImage}" Height="{Binding ActualHeight, ElementName=dataImage}"
                Loaded="imageCanvas_Loaded" MouseMove="imageCanvas_MouseMove">
            <Canvas.Background>
                <VisualBrush Stretch="Uniform">
                    <VisualBrush.Visual>
                        <Image x:Name="dataImage" ClipToBounds="True" RenderOptions.BitmapScalingMode="HighQuality" Stretch="Uniform" Source="{Binding DataImage, Mode=OneWay}" LayoutTransform="{Binding DataImageLayoutTransform, Mode=OneWay}"/> 
                    </VisualBrush.Visual>
                </VisualBrush>
            </Canvas.Background>
        </Canvas>

Обратите внимание, что Image использует LayoutTransform. Я использую это, чтобы растянуть ширину изображения. Если я отключаю привязку LayoutTransform и запускаю, я получаю следующий (правильно) визуализированный вывод:

enter image description here

Однако, когда я добавляю LayoutTransform, чтобы растянуть ширину изображения в 6 раз, изображение выглядит растянутым правильно, но оно слишком мало, т. Е. Оно не заполняет холст равномерно:

enter image description here

Я подозреваю, что это может иметь какое-то отношение к привязке Canvas Height / Width к ширине высоты изображения, но неясно, в чем именно заключается проблема. Кто-нибудь может дать некоторое представление? Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...