2

我有一个ListBox其内容被拉伸以填充我的窗口,并且在其中我有一个带有两列(三列,包括GridSplitter)的网格。

我只想能够使用GridSplitter像刷卡器一样的东西,能够隐藏/显示任意数量的任一列。即 100% 左侧,每个 50%,或 100% 右侧等。

我不能为我的生活让它做到这一点。两边的元素都有自己想要的大小,天真的*方法不允许GridSplitter缩小到该大小以下。如果我使用固定的列大小,我可以缩小到它们所需的大小以下,但是当调整大小时,GridSplitter可以超过最终宽度,并且内容不再拉伸以填充。WindowWindow

这是最能说明我的问题的 XamlPad 文档:

<ListBox HorizontalContentAlignment="Stretch">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <Grid Height="20">
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="*" />
          <ColumnDefinition Width="5" />
          <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Border Background="Red" MinWidth="200" /> <!-- simulate fixed size content /-->
        <Border Background="Purple" Width="200" HorizontalAlignment="Left" />
        <GridSplitter Grid.Column="1" HorizontalAlignment="Stretch" Background="Gray"
                      ResizeDirection="Columns" ResizeBehavior="PreviousAndNext" />
        <Border Grid.Column="2" Background="Lime" MinWidth="200" HorizontalAlignment="Stretch" />
      </Grid>
    </DataTemplate>
  </ListBox.ItemTemplate>
  <x:Null />
</ListBox>

最奇怪的是,如果我没有 ListBox,则不会出现此问题。然后它完全按照我的意愿工作。

无论如何,感谢任何人的帮助,这一切都将不胜感激 - 这让我发疯了:)

4

0 回答 0