我实现了一个自定义控件,它只包含一个标签和一个文本框来输入多行文字:
<DockPanel Name="MyStackPanel" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" LastChildFill="True" >
<Label DockPanel.Dock="Top" Content="{Binding MyTitle}" Style="{StaticResource PropertyNameLabelStyle}" />
<TextBox DockPanel.Dock="Bottom" Text="{Binding Path=MyText, Mode=TwoWay}" IsReadOnly="{Binding MyIsReadOnly}" HorizontalAlignment="Stretch" AcceptsReturn="True" Margin="5,5,5,5" VerticalScrollBarVisibility="Visible" IsUndoEnabled="True" />
</DockPanel>
重要的是,TextBox
填充其父母提供的所有空间,但不是更多 - 这与上面的代码一起运作良好。然而,如果用户键入的文本多于显示的TextBox
提供的TextBox
而是变得更大(更高),然后简单地启用垂直ScrollBar
,这就是我 - 我想其他大多数程序员 - 想要的。
我对XAML很新,但我想你可能想试试这个:
我为TextBox本身设置了VerticalAlignment
:
<TextBox Text="ABC" MinWidth="200" VerticalAlignment="Center">
</TextBox>
它对我有用。