相关疑难解决方法(0)

ScrollViewer和TextBlock包装

我有以下布局(简化):

<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>
Run Code Online (Sandbox Code Playgroud)
  • 第一列应该占据所需的空间(有时它可以是100像素,有时是500).
  • 第二列应伸展到可用空间,但不超过400像素(变得难看).
  • 第三列应尽可能多地占用空间(有时可以是200像素,有时是400像素).
  • 如果在极少数情况下,layoutGrid需要的空间超过屏幕上的可用空间,则应该可以看到水平滚动条.
  • GroupBox应该始终具有所有三列的总宽度(它应该尽可能多地扩展它们的宽度).在那个空间里,文本框应该换行.GroupBox不应该伸展到屏幕上可用的整个空间.

我怎样才能在xaml中实现这一目标?似乎只要插入ScrollViewer,TextBlock就不再包装了.

wpf wpf-4.0

3
推荐指数
1
解决办法
4441
查看次数

标签 统计

wpf ×1

wpf-4.0 ×1