12

有谁知道在这样的框架上定义垂直滚动条的区别:

        <ScrollViewer Grid.Row="2" VerticalScrollBarVisibility="Auto">
            <Frame Name="Frame1"
                   ScrollViewer.CanContentScroll="True" />
        </ScrollViewer>

或像这样:

        <ScrollViewer Grid.Row="2">
            <Frame Name="Frame1"
                   ScrollViewer.VerticalScrollBarVisibility="Auto"
                   ScrollViewer.CanContentScroll="True" />
        </ScrollViewer>

此框架嵌套在 WebBrowser 控件中,并将其设置为正确显示垂直滚动条的第一种方式,并且仅在需要滚动时才可见(自动)。当我以第二种方式设置它时,垂直滚动条的工作方式,但即使它不需要滚动(可见)也始终可见。

我将使用第一个选项,因为它满足我的需求,但如果我设置不正确,我不想在路上感到惊讶。

谢谢!

4

1 回答 1

30

当您使用ScrollViewer.VerticalScrollBarVisibilityScrollViewer.HorizontalScrollBarVisibility附加属性时,它对 Frame 没有影响。

<ScrollViewer Margin="225.667,-4,0,296.939" HorizontalAlignment="Left" Width="221.667">
        <Frame Content="Frame" ScrollViewer.CanContentScroll="True" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Hidden" Source="UserControl2.xaml" Background="#FFDE5454"/>
</ScrollViewer>

在上面的示例中,我使用了这两个属性ScrollViewer.VerticalScrollBarVisibilityScrollViewer.HorizontalScrollBarVisibility附加属性。该代码的结果与您所期望的完全相反。没有HorizontalScrollBar可见的......你仍然可以看到VerticalScrollBar

所以这就是你应该使用的原因

<ScrollViewer Grid.Row="2" VerticalScrollBarVisibility="Auto">
        <Frame Name="Frame1" />
</ScrollViewer>

例如,当您尝试使用 ListBox 时,结果会有所不同。

这是以下代码的结果:

在此处输入图像描述

<ScrollViewer Margin="225.667,0,0,12.761" Height="280.178" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="221.667">
        <ListBox ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollBarVisibility="Visible" Background="Orange" ItemsSource="{Binding Collection}" DisplayMemberPath="Property1" />
</ScrollViewer>

这是因为这些附加属性现在影响 ScrollViewer 内部而不是您可能期望的ListBox父级。ScrollViewer

因此,从这个小实验中,我假设ScrollViewer.VerticalScrollBarVisibility附加属性适用于您希望能够影响ScrollViewerControl 模板中存在的属性而不是 parent 的情况ScrollViewer。所以我认为它不起作用,例如DockPanel.Dock它对 parent 生效DockPanel

于 2013-06-11T23:53:19.783 回答