WPF图像缩放

jos*_*hls 5 wpf image zoom

我有一个带有图像的Viewbox.这很好,因为Viewbox会缩放图像以适应窗口.但是,我需要能够将图像缩放到其完整大小并显示滚动条,我很难弄清楚如何执行此操作.

这就是我现在所拥有的.任何人都可以指出我如何修改它来实现上述功能?

<Viewbox x:Name="viewbox">
    <StackPanel>
        <Image x:Name="image" Source="ranch.jpg" />
    </StackPanel>
</Viewbox>
Run Code Online (Sandbox Code Playgroud)

编辑:只是为了澄清.我需要两种方式来查看图像,适合窗口的视图框样式以及切换到显示滚动条但不调整图像大小的实际大小视图的功能.

Rob*_*nee 11

你不需要Viewbox在这里,通过将ImageScrollViewer与操纵VerticalScrollBarVisibilityHorizontalScrollBarVisibility性能,可以使Image规模与否:

<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <CheckBox x:Name="chkActualSize" Grid.Row="0" Content="Actual Size"/>
    <ScrollViewer Grid.Row="1">
        <ScrollViewer.Style>
            <Style TargetType="{x:Type ScrollViewer}">
                <Setter Property="HorizontalScrollBarVisibility" Value="Disabled"/>
                <Setter Property="VerticalScrollBarVisibility" Value="Disabled"/>
                <Style.Triggers>
                    <DataTrigger Binding="{Binding IsChecked, ElementName=chkActualSize}" Value="True">
                        <Setter Property="HorizontalScrollBarVisibility" Value="Auto"/>
                        <Setter Property="VerticalScrollBarVisibility" Value="Auto"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </ScrollViewer.Style>
        <Image Source="http://sipi.usc.edu/database/misc/4.1.01.tiff" VerticalAlignment="Center" HorizontalAlignment="Center"/>
    </ScrollViewer>
</Grid>
Run Code Online (Sandbox Code Playgroud)