WPF布局:Tabcontrol内部的文本框增长

时间:2011-08-10 18:17:14

标签: c# wpf layout

<{3}} Both个问题表示要将拉伸文本框绑定到容器宽度/高度而不是随用户输入增长,您应该使用占位符边框并绑定到其实际高度/宽度。< / p>

这只是一种有效的方法。它确实阻止文本框随用户输入而增长,但文本框只会调整大小以增长,它永远不会调整大小以缩小。如果使用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

1 个答案:

答案 0 :(得分:1)

MaxWidth的{​​{1}}属性绑定到容器的TextBox属性。

Width