可调整大小的窗口上的框架应显示滚动条

时间:2011-12-12 03:11:09

标签: c# .net wpf xaml scroll

我的应用程序有一个可调整大小的WPF窗口,其中一个框架显示不同的WPF页面。大多数情况下页面大于框架,如果是这种情况,框架应显示滚动条。不幸的是,它从不显示任何滚动条。

这是我的代码:

<Grid>
    <Frame Name="MainFrame"
           NavigationUIVisibility="Hidden"
           Width="Auto"
           Height="Auto"
           VerticalAlignment="Stretch"
           HorizontalAlignment="Stretch"
           ScrollViewer.CanContentScroll="True"
           ScrollViewer.HorizontalScrollBarVisibility="Auto" 
           ScrollViewer.VerticalScrollBarVisibility="Auto" />
</Grid>

代码背后:

MainFrame.Navigate(new Page1());

我做错了什么?

3 个答案:

答案 0 :(得分:2)

尝试将Frame包裹在ScrollViewer

<Grid>
    <ScrollViewer>
        <Frame Name="MainFrame"
               NavigationUIVisibility="Hidden"
               Width="Auto"
               Height="Auto"
               VerticalAlignment="Stretch"
               HorizontalAlignment="Stretch"
               ScrollViewer.CanContentScroll="True"
               ScrollViewer.HorizontalScrollBarVisibility="Auto" 
               ScrollViewer.VerticalScrollBarVisibility="Auto" />
    </ScrollViewer>
</Grid>

答案 1 :(得分:1)

我有同样的问题,我放弃了,只是将可见性设置为可见。如果它不需要滚动条那么就没有真正的伤害。

答案 2 :(得分:0)

有同样的问题,没有任何效果。所以我使用了一种解决方法,通过向目标页面添加scrollviewer来解决它 并将页面大小设置为帧大小

<Page x:Class="PageInFrame" Height="1050" Width="555" > …
<ScrollViewer x:Name="svScroll" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Grid x:Name="LayoutRoot"  Height="1050" Width="555">
    …..
    </Grid>
</ScrollViewer>

将页面高度和宽度属性设置/替换为目标/包含帧大小(可以在运行时或设计时完成)