这只是一种有效的方法。它确实阻止文本框随用户输入而增长,但文本框只会调整大小以增长,它永远不会调整大小以缩小。如果使用RenderSize,它会增长和缩小,但它会随着用户输入再次增长。另外,添加一个额外的元素来绑定宽度/高度似乎有点hacky。有更好的解决方案吗?
这似乎应该是拉伸文本框的默认行为。
编辑:这是XAML(包括Aaron的建议)
<TabControl HorizontalAlignment="Stretch" Margin="5,15,5,5" Name="tabControl2" VerticalAlignment="Stretch" MinHeight="80">
<TabItem Header="Description" Name="tabItem2" FontSize="14" IsEnabled="True">
<Grid>
<Border Name="b_desc"/>
<TextBox HorizontalAlignment="Stretch" Margin="0" Name="textBox5"
VerticalAlignment="Stretch" FontSize="12" TextWrapping="Wrap"
AutoWordSelection="True" VerticalScrollBarVisibility="Auto"
AcceptsReturn="True"
Width="{Binding ElementName=b_desc, Path=ActualWidth}"
Height="{Binding ElementName=b_desc, Path=ActualHeight}"
MaxWidth="{Binding ElementName=b_desc, Path=Width}"
MaxHeight="{Binding ElementName=b_desc, Path=Height}" />
</Grid>
</TabItem>
</TabControl>
EDIT2 :我不确定它是否有所作为,但这些元素是绑定到ViewModel集合的TabControl的内容。有关模式的示例,请参阅these。
答案 0 :(得分:1)
将MaxWidth
的{{1}}属性绑定到容器的TextBox
属性。
Width