WPF中WrapPanel、StackPanel等添加滚动条ScrollViewer
来源:互联网 发布:ubuntu vsftpd配置 编辑:程序博客网 时间:2024/05/29 12:22
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>效果图:
0 0
- WPF中WrapPanel、StackPanel等添加滚动条ScrollViewer
- WPF-使用面板控制内容布局,比较Canvas,WrapPanel,StackPanel,Grid,ScrollViewer
- WPF-使用面板控制内容布局,比较Canvas,WrapPanel,StackPanel,Grid,ScrollViewer
- WPF中的StackPanel、WrapPanel、DockPanel
- wpf 中使用 ScrollViewer 滚动条不出现
- C#中WPF下自定义滚动条ScrollViewer样式
- ScrollViewer的滚动问题(ScrollViewer里添加stackPanel,再加俩个listbox无法滚动的问题)
- silverlight 在ScrollViewer中动态添加控件时ScrollViewer滚动条始终至底
- WPF 布局 - Grid, StackPanel, DockPanel, WrapPanel
- WPF ScrollViewer滚动条根据内容自动滚动到底部
- WPF——TextBox 滚动条与StackPanel
- 自定义WPF滚动条(ScrollViewer):仿苹果系统规划
- [WPF,XAML,ScrollBar,ScrollViewer,Style] 自定义滚动条
- 自定义WPF滚动条(ScrollViewer):仿苹果系统规划
- [WPF,XAML,ScrollBar,ScrollViewer,Style] 自定义滚动条
- WPF ScrollViewer(滚动条) 自定义样式表制作 图文并茂
- WPF ScrollViewer(滚动条) 自定义样式表制作 图文并茂
- WPF ScrollViewer(滚动条) 自定义样式表制作 (改良+美化)
- C/C++常见编译错误整理
- centos安装kubernets(三) 解决dashboard报错解决
- Oauth2.0和Oauth1.0的区别
- 构建二叉树(前中序构建105,中后序构建106)--非递归的方法值得研究
- CentOS下安装JDK的三种方法
- WPF中WrapPanel、StackPanel等添加滚动条ScrollViewer
- nodejs开发1创建新的app
- 北京理工大学抢课教程
- VS中包含目录、附加包含目录、附加库目录及附加依赖项
- java 如何读取jar包外的properties文件(转)
- Android socket 编程 实现消息推送
- Xshell的正确使用方式
- DrawerLayout侧滑
- 利用Gradle发布Android Studio项目到JCenter