WPF系列教程(十四):特殊容器控件ScrollViewer

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>
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小菜的成长之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值