WPF Image подходит для содержимого внутри холста, который находится внутри сетки

У меня есть реализация, в которой у меня есть прокрутки в UserControl. Внутри прокрутки у меня есть сетка, которая содержит холст. Холст в свою очередь имеет изображение внутри. Что-то вроде этого.

<ScrollViewer x:Name="ImageScrollViewer"
              HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
              HorizontalContentAlignment="Center" HorizontalAlignment="Center" 
              VerticalContentAlignment="Center" VerticalAlignment="Center"
              MouseEnter="TargetImage_OnMouseEnter" MouseLeave="TargetImage_OnMouseLeave" >

    <Grid x:Name="ImageGrid" ClipToBounds="True">
        <Grid.LayoutTransform>
            <TransformGroup>
                <ScaleTransform x:Name="ScaleTransform" ScaleX="{Binding ZoomScaleFactor}" ScaleY="{Binding ZoomScaleFactor}"  Changed="ScaleTransform_OnChanged"/>
            </TransformGroup>
        </Grid.LayoutTransform>

        <Canvas Name="ImgCanvas">
            <Image Source="{Binding BmpImageSource, UpdateSourceTrigger=PropertyChanged}" x:Name="LoadedImage" 
                   MaxWidth="1920" MaxHeight="1080"
                   ClipToBounds="True" Style="{x:Null}"
                   Stretch="Uniform" StretchDirection="Both"
                   HorizontalAlignment="Center" VerticalAlignment="Center">

            </Image>
        </Canvas>
    </Grid>
</ScrollViewer>

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

0 ответов

Другие вопросы по тегам