WPF——TextBox 滚动条与StackPanel
来源:互联网 发布:金数据是干嘛用的 编辑:程序博客网 时间:2024/05/15 09:08
最近写的一个WPF小程序,边学边做的,在动态添加控件时出的这个问题,试了一下,直接写xaml也有这个问题,所以可以简单的说明一下.
直接上xaml:
<Window x:Class="WpfApplication2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <TabControl> <TabItem Header="station1"> <StackPanel VerticalAlignment="Stretch"> <TabControl VerticalAlignment="Stretch"> <TabItem Header="output" VerticalAlignment="Stretch"> <TextBox VerticalAlignment="Stretch" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" AcceptsReturn="True"></TextBox> </TabItem> </TabControl> </StackPanel> </TabItem> </TabControl></Window>可以看到,是一个TabControl中的TabItem嵌套TabControl的界面,关键在于最内层的TextBox,后台代码会在这个TextBox输出很多行数据,但是发现当TextBox满了以后,滚动条并没有出现,而TextBox则继续增大,看不到后面的数据了,一开始以为是哪里的设置问题,搞了很久都没有看出来问题,后来在网上随便搜索的时候,发现问题出在了容器StackPanel上:
StackPanel的容器特性中有一条:如果容器中的控件大小超出了StackPanel的大小,那么超出的部分会被截掉
至此,原因明了了,StackPanel截掉了TextBox多出的部分
解决办法很简单,换一个容器就可,比如DockPanel:
<Window x:Class="WpfApplication2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <TabControl> <TabItem Header="station1"> <DockPanel VerticalAlignment="Stretch"> <TabControl VerticalAlignment="Stretch"> <TabItem Header="output" VerticalAlignment="Stretch"> <TextBox VerticalAlignment="Stretch" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" AcceptsReturn="True"></TextBox> </TabItem> </TabControl> </DockPanel> </TabItem> </TabControl></Window>
问题解决,滚动条正常出现。
还有一个小细节:使用StackPanel时,TextBox是不能垂直填充整个容器的,这应该也是StackPanel的特性,因为StackPanel默认Orientation = "Vertical" 。 如果早点发现这个可能就能更早的知道是容器的问题了。
虽然是个小问题,但是如果不熟悉容器还真可能要折腾一会。
0 0
- WPF——TextBox 滚动条与StackPanel
- WPF中WrapPanel、StackPanel等添加滚动条ScrollViewer
- TextBox 多行加 滚动条
- TextBox滚动条
- 隐藏滚动条textbox
- WPF之路——StackPanel布局(堆栈面板)
- WPF 4.5 和C#(3.1)——布局(Stackpanel, Margin)
- WPF快速入门2—布局WrapPanel,DockPanel,StackPanel
- 【WPF】—StackPanel && Grid 初识布局容器(1)
- 继续聊WPF——自定义滚动条
- 继续聊WPF——自定义滚动条
- wpf 添加滚动条
- WPF操作滚动条
- WPF学习记录-布局[摘抄自博客园(xiepeixing<WPF布局该如何选用panel>与(DotNet菜园<WPF入门教程系列七——布局之WrapPanel与StackPanel(二)>))]
- Wpf 中TextBox 自动滚动到底部
- WPF编程学习——布局 StackPanel、WrapPanel、DockPanel、Canvas、Grid
- wpf学习笔记---StackPanel
- WPF控件-StackPanel控件
- 业务系统JSON日志通过python处理并导入Mysql方案
- 搭建自己的SIP服务器:开源sip服务器opensips的搭建及终端TwInkle的使用
- 使用winSCP进行linux和windowds之间的文件传递
- 带有EXISTS谓词的子查询
- Objective-C NSString类的常用方法
- WPF——TextBox 滚动条与StackPanel
- DatePickerDialog\TimePickerDialog日期时间选择器
- BING算法——思路整理(目标检测算法)
- ubuntu常用命令
- CDH(Cloudera)与hadoop(Apache)对比
- 点击按钮加载iframe再次点击关闭iframe
- 学生-课程数据库
- Fresco和Glide同时用的时候需要注意
- linux快速安装lamp的方法