3

7行のグリッドがあります。行 0 は 2 つのボタンのグループです 行 1 はオブジェクトの ListBox です 行 2 は 3 つのボタンのグループです 行 3 は 2 つのボタンのグループです 行 4 は私の GridSplitter が存在する場所です 行 5 は 2 つのボタンのグループです 行 6 はオブジェクトのリストボックス

GridSplitter を上下にスライドさせて、2 つの ListBox のそれぞれのサイズを変更します。私はそれを独自の行に住んでいます。スライドすると、行4(独自の行)の上部に到達するとフリーズし、行4を下に拡張しながら空白を作成します。

上下にスライドして各 ListBox のサイズを変更するには、そのスプリッターが必要なだけです。現在、これらの ListBox は、ビューに対して大きくなりすぎた場合に垂直スクロール バーを持ちます。

何か案は?

4

2 に答える 2

6

説明したように a を使用する方法を示す XAML を次に示しますGridSplitter

<Grid VerticalAlignment="Stretch">  
  <Grid.RowDefinitions>
    <RowDefinition Height="10" />
    <RowDefinition Height="10" />
    <RowDefinition Height="10" />
    <RowDefinition Height="10" />
    <RowDefinition Height="10" />
    <RowDefinition Height="10" />
    <RowDefinition Height="*" />
    <RowDefinition Height="*" />
  </Grid.RowDefinitions>

  <Rectangle Grid.Row="0" Fill="Red" />
  <Rectangle Grid.Row="1" Fill="Orange" />
  <Rectangle Grid.Row="2" Fill="Yellow" />
  <Rectangle Grid.Row="3" Fill="Green" />
  <Rectangle Grid.Row="4" Fill="Blue" />
  <Rectangle Grid.Row="5" Fill="LightBlue" />

  <ListBox Grid.Row="6" Background="Indigo">
    <ListBoxItem>Hello</ListBoxItem>
    <ListBoxItem>World</ListBoxItem>
  </ListBox>

  <GridSplitter Grid.Row="7" Height="5" Background="Gray"
                VerticalAlignment="Top" HorizontalAlignment="Stretch" />

  <ListBox Grid.Row="7" Background="Violet" Margin="0,5,0,0">
    <ListBoxItem>Hello</ListBoxItem>
    <ListBoxItem>World</ListBoxItem>
  </ListBox>
</Grid>

GridSplitter を独自の行に配置しないでください。それを既存の行内に配置し、配置を上 (上のセルの場合は下) に設定し、水平に引き伸ばします。高さを 5 に設定し、2 番目の ListBox の上マージンを 5 に設定して、どちらの要素も他の要素を隠していないことに注意してください。

それが役立つことを願っています。

于 2009-09-14T23:01:55.003 に答える
0

私は同じ問題を抱えていました: 水平の GridSplitter (独自の行) は移動できませんでしたが、垂直の GridSplitter は正常に機能しました。Horizo​​ntalAlignment="Stretch" プロパティを追加すると、問題が解決することがわかりました。

動かない XAML:

<GridSplitter Grid.Row="2" Grid.Column="2" Height="5" ResizeDirection="Rows" VerticalAlignment="Center" />

作業中の XAML:

    <GridSplitter Grid.Row="2" Grid.Column="2" Height="5" ResizeDirection="Rows" VerticalAlignment="Center" HorizontalAlignment="Stretch"/>

また、プロジェクトを実行し、プロジェクト アプリケーションを閉じてから、動作していない GridSplitter (つまり、変更前) を含む XAML 行にカーソルを置くと、GridSplitter の選択ウィンドウに、GridSplitter が最後に表示されることもわかりました。列。BackGround プロパティを色 (例: "Red") に変更することで、これを実証することもできます。

Horizo​​ntalAlignment プロパティの設定については、ここに記載されています (ただし、強調されていません): http://msdn.microsoft.com/en-us/library/ms743457.aspx

于 2011-12-13T01:33:11.817 に答える