gpt4 book ai didi

wpf - 在 WPF 框架上设置 ScrollViewer(用于垂直滚动)的正确方法?

转载 作者:行者123 更新时间:2023-12-04 00:11:24 31 4
gpt4 key购买 nike

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

        <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 控件中,并将其设置为第一种方式正确显示垂直滚动条,并且仅在需要滚动(自动)时可见。当我以第二种方式设置它时,垂直滚动条工作但即使不需要滚动(可见)也始终可见。

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

谢谢!

最佳答案

当您使用 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 尝试此操作时,结果会有所不同。

这是以下代码的结果:

enter image description here
<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>

那是因为这些附加属性现在会影响 ListBox 内的 ScrollViewer。而不是父 ScrollViewer正如您所料。

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

关于wpf - 在 WPF 框架上设置 ScrollViewer(用于垂直滚动)的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17054824/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com