0

私の UI には、2 つの列と 1 つの行を持つ大きなグリッドがあります。右の列には 3 行のグリッドがあり、一番上の行にはユーザー コントロールがあり、下の 2 行には 2 つのExpanderオブジェクトがあり、それぞれItemsControlに実行時に入力されるリストを含む があります。時々、そのリストは非常に長くなり、画面から下に向かって「こぼれ」ます。

私がやりたいことは、ユーザーが両方のエキスパンダーを表示できるようにすることです。両方を見ながら展開または折りたたむことができます。それらをWrapPanels orでラップしようとしましStackPanelたが、役に立ちませんでした。

私の問題を説明するのに役立つコードを次に示します。

<Grid Grid.Row="1" x:Name="grid1">
<Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="*" />
</Grid.RowDefinitions>
<Expander Grid.Row="0" Header="Expander 1" x:Name="expander1" FontSize="14" IsExpanded="True">
    <Expander.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FFC4C4C4" Offset="0" />
            <GradientStop Color="White" Offset="1" />
        </LinearGradientBrush>
    </Expander.Background>
    <ContentPresenter Content="{Binding ViewModel.OpenAlerts, ElementName=m_viewControl}" ClipToBounds="True"/>
</Expander>
<Expander Grid.Row="1" x:Name="expander2" Header="Expander 2" FontSize="14" IsExpanded="True">
    <Expander.Background>
        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
            <GradientStop Color="#FFC4C4C4" Offset="0" />
            <GradientStop Color="White" Offset="1" />
        </LinearGradientBrush>
    </Expander.Background>
    <ContentPresenter Content="{Binding ViewModel.ClosedAlerts, ElementName=m_viewControl}" ClipToBounds="True"/>
</Expander>
</Grid>

どんな支援やヒントも大歓迎です!

ありがとう、ジョン。

4

1 に答える 1

1

にどのような種類の UI 要素があるかは実際には明確ではありませんがExpandersListBoxたとえば、問題なく動作します。アイテムの数がグリッド行に割り当てられたスペースよりも大きい場合、スクロールバーが表示されます。

ただし、アイテムのリストを aStackPanel内にラップすることもできますScrollViewer。これも正常に機能します。

<Expander Grid.Row="0" Header="Expander 1" x:Name="expander1" FontSize="14" IsExpanded="True">
  <Expander.Background>
    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
      <GradientStop Color="#FFC4C4C4" Offset="0" />
      <GradientStop Color="White" Offset="1" />
    </LinearGradientBrush>
  </Expander.Background>
  <ScrollViewer>
    <StackPanel>
      <TextBlock>Test</TextBlock>
      <TextBlock>Test</TextBlock>
      <TextBlock>Test</TextBlock>
      <!-- etc.. -->
      <!-- etc.. -->
    </StackPanel>
  </ScrollViewer>
</Expander>

それもあなたのために働くはずです。

于 2012-06-04T07:47:04.167 に答える