ScrollViewer—WPF滚动条控件

ScrollViewer---WPF滚动条控件

参考地址:ScrollViewer 概述 - WPF .NET Framework | Microsoft Learn

1.ScrollViewer定义与功能
  • ScrollViewer是WPF应用程序的一个容器控件,用于在可以滚动的区域中显示其他可见元素。
  • ScrollViewer封装; 水平和垂直ScrollBar元素以及一个内容容器,响应鼠标命令和键盘命令。
  • 应用场景
    • 长文本
    • 大量数据的显示
    • 图片浏览等
2.ScrollViewer使用
C# 复制代码
<ScrollViewer Name="scrollViewer" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
	<StackPanel VerticalAlignment="Top" HorizontalAlignment="Center">
		<TextBlock TextWrapping="Wrap" Margin="0,0,0,20"
				   Text="这是一段很长的文本内容,用于演示TextBlock的文本换行和ScrollViewer的垂直滚动。当文本内容过多时,它将向下滚动以显示所有内容。同时,下方的矩形将保持固定,并在需要时触发水平滚动。">
		</TextBlock>
		<Rectangle Fill="AliceBlue" Width="500" Height="500"></Rectangle>
	</StackPanel>
</ScrollViewer>

运行结果:

3.ScrollViewer常用属性
属性 解释 属性值
VerticalScrollBarVisibility 设置垂直滚动条可见属性 Auto:内容超出时显示 Visible:显示 Hidden:隐藏,用光标仍可以滚动内容 Disable:隐藏,用光标不可以滚动内容
HorizontalScrollBarVisibility 设置水平滚动条可见属性 与VerticalScrollBarVisibility属性的用法相同
IsEnabled 设置ScrollViewer控件是否使用滚动条 默认:True
4.滚动类型
  • 物理滚动
    用于按预设的物理增量滚动内容。这是大多数Panel元素的默认滚动行为。
  • 滚动逻辑
    用于滚动到逻辑树的下一项。
5.用Button来控制ScrollViewer的滚动
C# 复制代码
<StackPanel VerticalAlignment="Top" HorizontalAlignment="Center">
    <Button Name="btnPageUp" Width="80" Height="20" Margin="0,0,0,5" Content="向上翻页" Click="btnPageUp_Click"/>
    <Button Name="btnPageDown" Width="80" Height="20" Margin="0,0,0,5" Content="向下翻页" Click="btnPageDown_Click"/>
    <Button Name="btnLineUp" Width="80" Height="20" Margin="0,0,0,5" Content="向上滚动" Click="btnLineUp_Click"/>
    <Button Name="btnLineDown" Width="80" Height="20" Margin="0,0,0,5" Content="向下滚动" Click="btnLineDown_Click"/>
    <Button Name="btnScrollToTop" Width="80" Height="20" Margin="0,0,0,5" Content="滚到顶部" Click="btnScrollToTop_Click"/>
    <Button Name="btnScrollToEnd" Width="80" Height="20" Margin="0,0,0,5" Content="滚到底部" Click="btnScrollToEnd_Click"/>
</StackPanel>
复制代码
private void btnPageUp_Click(object sender, RoutedEventArgs e)
{
	scrollViewer.PageUp();  //向上翻页
}

private void btnPageDown_Click(object sender, RoutedEventArgs e)
{
	scrollViewer.PageDown();   //向下翻页
}

private void btnLineUp_Click(object sender, RoutedEventArgs e)
{
	scrollViewer.LineUp();  //向上滚动
}

private void btnLineDown_Click(object sender, RoutedEventArgs e)
{
	scrollViewer.LineDown();  //向下滚动
}

private void btnScrollToTop_Click(object sender, RoutedEventArgs e)
{
	scrollViewer.ScrollToTop();  //滚到顶部
}

private void btnScrollToEnd_Click(object sender, RoutedEventArgs e)
{
	scrollViewer.ScrollToEnd();  //滚到底部
}
相关推荐
罗迪尼亚的熔岩几秒前
联合kuka机器人, 海康visonmaster 的手眼9点标定方法
机器人·c#·工业相机·标定
她说彩礼65万13 分钟前
C# TaskCompletionSource
java·开发语言·c#
泛凡(Linyongui)16 小时前
基于 CW32L010 的智能厨卫调温旋钮方案--低成本 EC21 编码旋钮全解析
单片机·嵌入式硬件·c#
暴走约伯18 小时前
【VFX工具链源码拆解 02】告别机械劳动(上):一键统改百个子粒子颜色与批量重命名
3d·unity·c#·材质
信息安全失业大专人员20 小时前
每日了解一个智能体-WorkBuddy
开发语言·ai·c#·智能体
呆呆敲代码的小Y20 小时前
【实战精选面试题】C# 面试题详细解答,按难易程度排序
android·java·游戏·c#·游戏开发·unity面试题·c#面试题
淡海水21 小时前
09-01-内存-Unity资源生命周期全景
unity·c#·游戏引擎·.netcore·gc
椒颜皮皮虾྅1 天前
让 C# 读懂整张图:DeploySharp 驱动 PaddleOCR v4/v5/v6,打通 OCR 全流程
开发语言·人工智能·深度学习·学习·c#·ocr·cuda
昂好的day1 天前
C# 同步异步与多线程:Thread / Task / 线程池一次讲透(上篇)
开发语言·windows·c#
avi91111 天前
电影开源Jevdo - 源码介绍(vue版)没有android 和 没有wpf
android·wpf·框架·数据爬虫·meego·电影管理