ScrollViewer是一个可以滚动的控件。它使得大量内容在有限容器内显示成为可能。
项目源码
在窗体中添加ScrollViewer控件,在ScrollViewer中添加一个文本框TextBox,将Text属性设置为较长的字符串。
(可以用word的语句自动生成功能,在word中输入函数=rand(1,2)即可)
利用滚动条的效果:
在这里插入图片描述
ScrollViewer有一个滚动条设置的属性,在垂直方向有VerticalScrollBarVisibility=“Hidden”
有四种取值,分别是:
Visible:显示滚动条
Hidden:隐藏滚动条,用光标仍然可以滚动内容
Disable:隐藏滚动条,用光标不可以滚动内容
Auto:只有当内容超出容器时才会显示滚动条
以上四种取值均可用滑轮滚动内容。
同样的,在水平方向,也有HorizontalScrollBarVisibility属性。
在这里插入图片描述
还可以通过其他控件来控制滚动条的滚动和页面的滚动。
例如,添加两个向上向下按钮,Button1,Button2,Button,Button4。
在这里插入图片描述

分别定义他们的点击事件响应函数:

private void Button1_Click(object sender, RoutedEventArgs e)
{
    this.ScrollViewer1.LineUp();  // LineUp方法等价于按下一次滚动条上面的向上按钮
}

private void Button2_Click(object sender, RoutedEventArgs e)
{
    this.ScrollViewer1.LineDown();  // LineDown方法等价于按下一次滚动条上面的向下按钮
}

private void Button3_Click(object sender, RoutedEventArgs e)
{
    this.ScrollViewer1.PageUp();  // 向上翻页
}

private void Button4_Click(object sender, RoutedEventArgs e)
{
    this.ScrollViewer1.PageDown();  // 向下翻页
}

还有通过ScrollToTop直接滚动到顶部和通过ScroolToEnd直接滚动到底部的方法。

private void Button5_Click(object sender, RoutedEventArgs e)
{
   this.ScrollViewer1.ScrollToTop();  // 翻到顶部
}

private void Button6_Click(object sender, RoutedEventArgs e)
{
   this.ScrollViewer1.ScrollToEnd();  // 翻到底部
}

自定义滚动

如图所示的窗口里面放置了四个Button控件,在点击滚动条上下按键时无法保证让某一个控件完全显示,此时只要将ScrollViewer的CanContentScroll属性设为True即可。<ScrollViewer Margin="3" CanContentScroll="True">。这样就能以控件为单元进行滚动,而不是逐行滚动。
但是这个属性只有部分容器可以使用,例如StackPannel

<ScrollViewer Margin="3" CanContentScroll="True">
    <StackPanel Margin="2">
        <Button Name="Button1" Width="100" Height="100" Content="Button1"/>
        <Button Name="Button2" Width="100" Height="100" Content="Button2"/>
        <Button Name="Button3" Width="100" Height="100" Content="Button3"/>
        <Button Name="Button4" Width="100" Height="100" Content="Button4"/>
    </StackPanel>
</ScrollViewer>
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐