在WPF中的ScrollViewer中显示大图像 [英] Displaying a large image in ScrollViewer in WPF

查看:254
本文介绍了在WPF中的ScrollViewer中显示大图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在一个窗口中显示一个大图像,如果图像对于它所在的屏幕区域来说太大,那么图像将会有滚动条。

I want to display a large image in a Window where the Image will have scroll bars if it too big for the area of the screen it is in.

下面图像我想要一个按钮面板。为此,我将Image放在一个DockPanel中的ScrollViewer中,该DockPanel包含一个StackPanel,用于包含Bottom部分中的Buttons。想法是单击浏览按钮来设置图像(从处理按钮单击后面的代码)

Underneath the image I want a button panel. For this I have put the Image inside a ScrollViewer in a DockPanel that contains a StackPanel to contain the Buttons in the Bottom part. The idea is to click the Browse button to set the image (from code behind handling Button Click)

以下我放在一起的示例将保持图像大小(2144 x 1424)我无法看到下方按钮面板。

The following example I put together will just keep the image size (2144 x 1424) and I cannot see the lower button panel.

<Window x:Class="WpfIssues.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfIssues"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <DockPanel>
            <TextBlock Text="Test Image" FontSize="30" DockPanel.Dock="Top"></TextBlock>
            <StackPanel Orientation="Vertical">

                <DockPanel x:Name="PhotoPanel">

                    <StackPanel DockPanel.Dock="Bottom" Orientation="Horizontal" HorizontalAlignment="Right">
                        <Button Click="Button_Click">Browse...</Button>
                    </StackPanel>

                    <ScrollViewer 
                        HorizontalScrollBarVisibility="Auto" 
                        VerticalScrollBarVisibility="Auto">
                        <StackPanel>
                        <Image x:Name="PhotoImage" 
                                Stretch="None" 
                               Source="Resources/bear grills.png"
                                HorizontalAlignment="Center"
                                VerticalAlignment="Center" />
                        </StackPanel>
                    </ScrollViewer>


                </DockPanel>
            </StackPanel>
        </DockPanel>
    </Grid>
</Window>

我无法弄清楚原因。

推荐答案

尝试将按钮放在滚动查看器之前,如下所示:

Try putting the button before the scrollviewer, like this:

<DockPanel>
    <TextBlock Text="Test Image" FontSize="30" DockPanel.Dock="Top" />
    <Button Content="Browse..." DockPanel.Dock="Bottom" />
    <ScrollViewer
                    HorizontalScrollBarVisibility="Auto"
                    VerticalScrollBarVisibility="Auto">
        <Image x:Name="PhotoImage"
                            Stretch="None"
                           Source="http://images6.fanpop.com/image/photos/33600000/Bear-Grylls-bear-grylls-33656894-3504-2336.jpg"
                            HorizontalAlignment="Center"
                            VerticalAlignment="Center" />
    </ScrollViewer>
</DockPanel>

这篇关于在WPF中的ScrollViewer中显示大图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆