我实现了一个自定义控件,它只包含一个标签和一个文本框来输入多行文本:
<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
,这就是我 - 我猜大多数其他程序员 - 想要的。