2013-01-07 51 views
0

我有一個列表框中的擴展。如果我現在將一個ListView放入最後一個Expander中,那麼ListView的大小正好顯示所有項目。這是迄今爲止我想要的。 但現在它不可能將ListBox向下滾動到ListView的末尾。列表框不顯示完整項目

爲了讓用戶能夠將ListBox向下滾動到最後一項(即ListView的末尾)的末尾,我該做些什麼?

這是我的簡化代碼:

<Window x:Class="ExpanderTest.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
<Grid> 
    <ListBox HorizontalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 

     <Expander Header="text"> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="*"/> 
        <ColumnDefinition Width="100"/> 
       </Grid.ColumnDefinitions> 
       <Label Grid.Column="0">some text</Label> 
       <Label Grid.Column="1">some text</Label> 
      </Grid> 
     </Expander> 

     <Expander Header="Buttons"> 
      <Grid> 
       <Grid.RowDefinitions> 
        <RowDefinition /> 
        <RowDefinition /> 
       </Grid.RowDefinitions> 
       <Button Grid.Row="0">Button1</Button> 
       <StackPanel Grid.Row="1" Orientation="Horizontal"> 
        <Button>Button2</Button> 
        <Button>Button3</Button> 
        <Button>Button4</Button> 
        <Button>Button5</Button> 
       </StackPanel> 
      </Grid> 
     </Expander> 

     <Expander Header="Much Information" IsExpanded="True"> 
      <ListView> 
       <ListView.View> 
        <GridView> 
         <GridView.Columns> 
          <GridViewColumn Header="Variable" Width="160" /> 
         </GridView.Columns> 
        </GridView> 
       </ListView.View> 
       <ListViewItem>Line 0</ListViewItem> 
       <ListViewItem>Line 1</ListViewItem> 
       <ListViewItem>Line 2</ListViewItem> 
       <ListViewItem>Line 3</ListViewItem> 
       <ListViewItem>Line 4</ListViewItem> 
       <ListViewItem>Line 5</ListViewItem> 
       <ListViewItem>Line 6</ListViewItem> 
       <ListViewItem>Line 7</ListViewItem> 
       <ListViewItem>Line 8</ListViewItem> 
       <ListViewItem>Line 9</ListViewItem> 
       <ListViewItem>Line 10</ListViewItem> 
       <ListViewItem>Line 11</ListViewItem> 
       <ListViewItem>Line 12</ListViewItem> 
       <ListViewItem>Line 13</ListViewItem> 
       <ListViewItem>Line 14</ListViewItem> 
       <ListViewItem>Line 15</ListViewItem> 
       <ListViewItem>Line 16</ListViewItem> 
       <ListViewItem>Line 17</ListViewItem> 
       <ListViewItem>Line 18</ListViewItem> 
       <ListViewItem>Line 19</ListViewItem> 
       <ListViewItem>Line 20</ListViewItem> 
       <ListViewItem>Line 21</ListViewItem> 
       <ListViewItem>Line 22</ListViewItem> 
       <ListViewItem>Line 23</ListViewItem> 
       <ListViewItem>Line 24</ListViewItem> 
       <ListViewItem>Line 25</ListViewItem> 
       <ListViewItem>Line 26</ListViewItem> 
       <ListViewItem>Line 27</ListViewItem> 
       <ListViewItem>Line 28</ListViewItem> 
       <ListViewItem>Line 29</ListViewItem> 
       <ListViewItem>Line 30</ListViewItem> 
       <ListViewItem>Line 31</ListViewItem> 
       <ListViewItem>Line 32</ListViewItem> 
       <ListViewItem>Line 33</ListViewItem> 
       <ListViewItem>Line 34</ListViewItem> 
       <ListViewItem>Line 35</ListViewItem> 
       <ListViewItem>Line 36</ListViewItem> 
       <ListViewItem>Line 37</ListViewItem> 
       <ListViewItem>Line 38</ListViewItem> 
       <ListViewItem>Line 39</ListViewItem> 
      </ListView> 
     </Expander> 
    </ListBox> 
</Grid> 

回答

1

一個解決辦法是把你的擴展器到一個StackPanel一個的ScrollViewer內,而不是使用一個列表框。

如果您需要保留外部ListBox,您可以禁用ScrollViewer,並將該ListBox包裝在ScrollViewer中。

<Grid> 
    <ScrollViewer> 
     <StackPanel> 

      <Expander Header="text"> 
       <Grid> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*"/> 
         <ColumnDefinition Width="100"/> 
        </Grid.ColumnDefinitions> 
        <Label Grid.Column="0">some text</Label> 
        <Label Grid.Column="1">some text</Label> 
       </Grid> 
      </Expander> 

      <Expander Header="Buttons"> 
       <Grid> 
        <Grid.RowDefinitions> 
         <RowDefinition /> 
         <RowDefinition /> 
        </Grid.RowDefinitions> 
        <Button Grid.Row="0">Button1</Button> 
        <StackPanel Grid.Row="1" Orientation="Horizontal"> 
         <Button>Button2</Button> 
         <Button>Button3</Button> 
         <Button>Button4</Button> 
         <Button>Button5</Button> 
        </StackPanel> 
       </Grid> 
      </Expander> 

      <Expander Header="Much Information" IsExpanded="True"> 
       <ListView> 
        <ListView.View> 
         <GridView> 
          <GridView.Columns> 
           <GridViewColumn Header="Variable" Width="160" /> 
          </GridView.Columns> 
         </GridView> 
        </ListView.View> 
        <ListViewItem>Line 0</ListViewItem> 
        <ListViewItem>Line 1</ListViewItem> 
        <ListViewItem>Line 2</ListViewItem> 
        <ListViewItem>Line 3</ListViewItem> 
        <ListViewItem>Line 4</ListViewItem> 
        <ListViewItem>Line 5</ListViewItem> 
        <ListViewItem>Line 6</ListViewItem> 
        <ListViewItem>Line 7</ListViewItem> 
        <ListViewItem>Line 8</ListViewItem> 
        <ListViewItem>Line 9</ListViewItem> 
        <ListViewItem>Line 10</ListViewItem> 
        <ListViewItem>Line 11</ListViewItem> 
        <ListViewItem>Line 12</ListViewItem> 
        <ListViewItem>Line 13</ListViewItem> 
        <ListViewItem>Line 14</ListViewItem> 
        <ListViewItem>Line 15</ListViewItem> 
        <ListViewItem>Line 16</ListViewItem> 
        <ListViewItem>Line 17</ListViewItem> 
        <ListViewItem>Line 18</ListViewItem> 
        <ListViewItem>Line 19</ListViewItem> 
        <ListViewItem>Line 20</ListViewItem> 
        <ListViewItem>Line 21</ListViewItem> 
        <ListViewItem>Line 22</ListViewItem> 
        <ListViewItem>Line 23</ListViewItem> 
        <ListViewItem>Line 24</ListViewItem> 
        <ListViewItem>Line 25</ListViewItem> 
        <ListViewItem>Line 26</ListViewItem> 
        <ListViewItem>Line 27</ListViewItem> 
        <ListViewItem>Line 28</ListViewItem> 
        <ListViewItem>Line 29</ListViewItem> 
        <ListViewItem>Line 30</ListViewItem> 
        <ListViewItem>Line 31</ListViewItem> 
        <ListViewItem>Line 32</ListViewItem> 
        <ListViewItem>Line 33</ListViewItem> 
        <ListViewItem>Line 34</ListViewItem> 
        <ListViewItem>Line 35</ListViewItem> 
        <ListViewItem>Line 36</ListViewItem> 
        <ListViewItem>Line 37</ListViewItem> 
        <ListViewItem>Line 38</ListViewItem> 
        <ListViewItem>Line 39</ListViewItem> 
       </ListView> 
      </Expander> 
     </StackPanel> 
    </ScrollViewer> 
</Grid>