我需要一些帮助。不知道这是否可能。我想要以下内容:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBox TextWrapping="Wrap" MinLines ="5"/>
</Grid>
这是一个文本框,包裹在宽度为 * 的网格列内。我希望文本框采用所有可用宽度(因此 *),但是当用户添加文本时,我希望它在到达行尾时换行(具有可用空间)。
目前,上面将给出一个具有整个宽度的文本框,但是当输入文本时,文本框的宽度只会随着文本而增长。
我知道我可以设置MaxWidth=?,但是该列的要点是*是我不知道该列的大小是多少。
我想对文本框说“不要增长,无论wpf给你什么,你都接受它,并且不要在上面再增加一个像素”。
我认为我想要的是不可能的,因为 wpf 询问控件它想要多大,当用户添加更多超出边界的文本时,它会请求更多空间并将其宽度扩展到无穷大。
最佳答案
尝试将 TextBox
的 MaxWidth
属性绑定(bind)到加星号列的 ActualWidth
属性(您必须将列命名为做这个)。我很确定我过去曾经做过类似的事情。
类似于:
MaxWidth={Binding ElementName=MyColumn, Path=ActualWidth}
祝你好运!
关于wpf 文本框文字环绕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/884324/