0

在我的 UI 中,我有一个两列一行的大网格。在右栏中,我有一个包含三行的网格,在顶行我有一个用户控件,在下面两行我有两个Expander对象,每个对象都包含一个ItemsControl在运行时填充的列表。有时,该列表会变得非常长,并且会从屏幕“溢出”到底部。

我想要做的是让用户看到两个扩展器,能够展开或折叠它们,同时保持它们都在视线范围内。我尝试将它们包装在WrapPanels 或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 元素Expanders,但是一个ListBox例子工作得很好,当项目数大于 Grid 行中分配的空间时,它会显示滚动条。

但是您也可以将项目列表包装在StackPanela 中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 回答