WPF - прокрутка списка в экспандере - PullRequest
4 голосов
/ 02 ноября 2009

У меня есть Expander, который я хочу иметь ListBox. Когда я открываю Expander, ListBox просто расширяется за пределы экрана (вместо того, чтобы расширяться, чтобы заполнить то, что доступно, а затем прокручивать ).

Вот мой XAML:

<DockPanel Margin="266.25,0,455,12" Name="dockPanel1">
    <StackPanel>
        <Expander Header="expander1" Name="expander1" Width="150" HorizontalAlignment="Left">
            <Grid>
                <Label>Testing</Label>
                <ScrollViewer>
                    <ListBox Name="lstBox"  FontSize="14" SelectionChanged="lstBox_SelectionChanged" />
                </ScrollViewer>
            </Grid>
        </Expander>
        <Expander Header="expander2" Name="expander2" Width="150" HorizontalAlignment="Left">
            <Grid >

            </Grid>
        </Expander>
    </StackPanel>
</DockPanel>

Когда Expander1 открыт, он просто увеличивается до размера ListBox (за пределами экрана). Если я поставлю размер на сетку (Height="275"), то он не будет изменяться с размером окна.

Я хочу растянуть его до размера окна, но не более. Есть ли способ сделать это?

1 Ответ

2 голосов
/ 02 ноября 2009

Вам необходимо установить свойство Height в ScrollViewer, иначе он будет того же размера, что и его дочерний элемент. Вот обновленный XAML:

<DockPanel>
    <StackPanel>
        <Expander Header="expander1" Width="150" HorizontalAlignment="Left">
            <StackPanel>
                <Label>Testing</Label>
                <ScrollViewer Height="75">
                    <ListBox>

                    </ListBox>
                </ScrollViewer>
            </StackPanel>
        </Expander>
        <Expander Header="expander2">
        </Expander>
    </StackPanel>
</DockPanel>
...