我的WPF应用程序中包含以下XAML代码,
<StackPanel DockPanel.Dock="Top" >
<TextBlock Style="{StaticResource HeaderTextBlock}">Import Log</TextBlock>
<ScrollViewer Height="400" VerticalScrollBarVisibility="Auto">
<TextBlock Name="ImportFeedBack"></TextBlock>
</ScrollViewer>
</StackPanel>
它显示了ImportFeedBack
字符串(以防万一,我正在使用Caliburn.Micro
MVVM框架,以便TextBlock
通过命名约定将ViewView的内容绑定到我的ViewModel中具有相同名称的属性)。
该值的长度可以有很大的不同。我希望它使用整个可用空间(但不应该调整应用程序的大小!),只有在这还不够的情况下,才添加垂直滚动条。
如果我删除了Height="400"
中的ScrollViewer
,它将为大型字符串调整应用程序的大小,如果我将其保留在此处,则它(显然)仅使用400高度,但是如果需要,他会滚动广告。
我如何才能利用所有可用空间,只有在这还不够的情况下才能创建垂直滚动条?
而不是StackPanel
使用其他面板,例如Grid
或DockPanel
。在下面的示例中,第二行将占用第一行未分配的所有可用空间,并且不会超出文本较长时滚动条应出现的范围。
<Grid DockPanel.Dock="Top" >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Style="{StaticResource HeaderTextBlock}">Import Log</TextBlock>
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
<TextBlock Name="ImportFeedBack"></TextBlock>
</ScrollViewer>
</Grid>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句