我有以下布局(简化):
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MaxWidth="400" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<!-- Code for Column=0 -->
<ScrollViewer Grid.Column="1">
<Grid x:Name="layoutGrid">
<Grid.ColumnDefinitions>
<Grid.ColumnDefinition Width="Auto" />
<Grid.ColumnDefinition MinWidth="100" MaxWidth="400" />
<Grid.ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<!-- Code for Row=0 and Row=1 -->
<GroupBox Grid.ColumnSpan="3" Grid.Row=2>
<TextBlock Text="{Binding ...}" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Top" />
</GroupBox>
</Grid>
</ScrollViewer>
</Grid>
- 第一列应该占用所需的空间(有时可能是100像素,有时是500像素)。
- 第二列应该扩展到可用空间,但不超过400个像素(会很难看)。
- 第三列应该占用所需的空间(有时可以是200像素,有时是400像素)。
- 在极少数情况下,如果layoutGrid需要比屏幕上可用的空间更多的空间,则应显示水平滚动条。
- GroupBox应始终具有三列的总宽度(它应该扩展为它们的总宽度)。在这个空间中,文本框应该换行。 GroupBox不应该扩展到屏幕上所有可用的空间。
我该如何在xaml中实现这一点?似乎只要插入ScrollViewer,TextBlock就不再包装。
ActualWidth
。因此,只能进行放大操作。有没有解决办法呢? - bytecode77