2

ウィンドウいっぱいにコンテンツが引き伸ばされた がありListBox、その中に 2 つの列 ( を含む 3 つ) を持つグリッドがあります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