WPF中WrapPanel、StackPanel等添加滚动条ScrollViewer

WPF中WrapPanel、StackPanel等添加滚动条ScrollViewerwpf中,在控件中直接设置ScrollViewer.HorizontalScrollBarVisibility和ScrollViewer.VerticalScrollBarVisibility属性,并不能显示滚动条。因为在wpf中,想要显示滚动条,需要把控件放在滚动条视图控件(ScrollViewer)中。ScrollViewer属性说明:VerticalScrollBarVisibili

大家好,又见面了,我是你们的朋友全栈君。

wpf中,在控件中直接设置ScrollViewer.HorizontalScrollBarVisibility和ScrollViewer.VerticalScrollBarVisibility属性,并不能显示滚动条。因为在wpf中,想要显示滚动条,需要把控件放在滚动条视图控件(ScrollViewer)中。

ScrollViewer属性说明:

VerticalScrollBarVisibility="Auto"  // 设置垂直滚动条自动显示,只要内部控件的实际高度大于ScrollViewer的高度,就会自动显示垂直滚动条。
HorizontalScrollBarVisibility="Auto"  // 设置水平滚动条自动显示,只要内部控件的实际宽度大于ScrollViewer的宽度,就会自动显示水平滚动条。

由于WrapPanel和StackPanel比较特殊,所以这里对这两个控件做一下说明:

1、WrapPanel

内部控件自动换行布局的Panel。

那么什么情况下会自动换行呢?当达到WrapPanel宽度的时候。

问题:如果WrapPanel的HorizontalAlignment属性都设置为”Stretch”,那么就代表宽度可以无限大,这个时候就只会显示水平滚动条,垂直滚动条不生效。

解决方案1:设置WrapPanel的宽度。

解决方案2:设置WrapPanel的宽度自适应ScrollViewer的宽度:Width=”{Binding ElementName=scrList, Path=Width, Mode=OneWay}”,这个时候依赖于ScrollViewer控件的宽度。

2、StackPanel

内部控件垂直布局的Panel。

当子控件的宽度大于StackPanel的宽度,就会出现水平滚动条。

当子控件的高度大于StackPanel的高度,就会出现垂直滚动条。

一、WrapPanel应用举例。

1、显示水平滚动条。

 <ScrollViewer x:Name="scr" Margin="0" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
                                <WrapPanel x:Name="pnlCandidate"/>
                            </ScrollViewer>

2、显示垂直滚动条。

第一种情况:

 <ScrollViewer x:Name="scr" Margin="0" VerticalScrollBarVisibility="Auto">
                                <WrapPanel x:Name="pnlCandidate"/>
                            </ScrollViewer>

这个时候默认WrapPanel的HorizontalAlignment=“Stretch”,即自适应ScrollerViewer的宽度,所以WrapPanel子控件会自动换行,当超过父控件的高度,会显示垂直滚动条。

第二种情况:

 <ScrollViewer x:Name="scr" Margin="0" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
                                <WrapPanel x:Name="pnlCandidate" Width="{Binding ElementName=scrList, Path=Width, Mode=OneWay}"/>
                            </ScrollViewer>

当设置水平和垂直滚动条都自动显示的时候,如果想显示垂直滚动条,则需要设置Width=”{Binding ElementName=scrList, Path=Width, Mode=OneWay}”,使WrapPanel自适应ScrollViewer的宽度。

二、StackPanel子控件显示滚动条。

 <StackPanel>
                            <Label Content="候选列表" FontSize="18" Width="5000" Background="Transparent" Foreground="White" BorderThickness="1" BorderBrush="{DynamicResource DefaultBorderColor}"/>
                            <ScrollViewer x:Name="scrList" Margin="0" VerticalScrollBarVisibility="Auto" Height="390">
                                <local:WrapPanelTemplates x:Name="pnlCandidate"/>
                            </ScrollViewer>
                        </StackPanel>

效果图:

WPF中WrapPanel、StackPanel等添加滚动条ScrollViewer

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163318.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android开机动画

    Android系统的开机动画可分为三个部分,kernel启动,init进程启动,android系统服务启动。这三个开机动画都是在一个叫做帧缓冲区(framebuffer)的硬件设备上进行渲染绘制的

    2021年12月28日
    44
  • python计算基尼系数_PHP算法

    python计算基尼系数_PHP算法什么是基尼系数基尼系数是指国际上通用的、用以衡量一个国家或地区居民收入差距的常用指标。是20世纪初意大利经济学家基尼,于1922年提出的定量测定收入分配差异程度的指标。它是根据洛伦兹曲线找出了判断分配平等程度的指标(如下图)。设实际收入分配曲线和收入分配绝对平等曲线之间的面积为A,实际收入分配曲线右下方的面积为B。并以A除以A+B的商表示不平等程度。这个数值被称为基尼系数或称洛伦茨系…

    2022年8月31日
    4
  • jenkins拉取gitlab代码_git提交远程仓库命令

    jenkins拉取gitlab代码_git提交远程仓库命令前言python自动化的脚本开发完成后需提交到git代码仓库,接下来就是用Jenkins拉取代码去构建自动化代码了新建项目打开Jenkins新建一个自由风格的项目源码管理Repository

    2022年7月28日
    17
  • 解析offsetHeight,clientHeight,scrollHeight之间的区别「建议收藏」

    解析offsetHeight,clientHeight,scrollHeight之间的区别「建议收藏」在网上搜了一下,结论非常笼统,讲IE从不讲版本,因此自己做了测试并上传结论。以下结论皆是在标准模式下测试通过的,没有测试quirk模式。clientHeight大部分浏览器对clientHeight都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,即然是指可看到内容的区域,滚动条不算在内。但要注意padding是算在内。其计算方式为clien…

    2022年9月10日
    3
  • Python注释以及快捷键「建议收藏」

    Python注释以及快捷键「建议收藏」1、单行注释单行注释是#Mac的快捷键是command+/windows的快捷键是Ctrl+/2、多行注释多行注释是三个单引号'''注释'&#39

    2022年8月2日
    5
  • 缺陷报告总结_缺陷报告要素

    缺陷报告总结_缺陷报告要素缺陷的分类严重程度:严重一般、次要、轻微、优先级:立即解决、高级优先、正常排队、低优先级种类:界面、功能、安全、兼容、性能阶段:需求、架构、设计、编码、测试缺陷报告核心要素(8)缺陷编号缺陷标题缺陷状态重现步骤严重程度优先级缺陷类型测试环境缺陷八种状态:新建、指派、打开、修复、拒绝、延期、关闭、重新打开。…

    2022年9月17日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号