Вопрос

у меня есть 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"), то его размер не изменяется вместе с окном.

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

Это было полезно?

Решение

Вам необходимо установить свойство 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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top