WPF Listbox не ограничен окном - PullRequest
0 голосов
/ 16 июня 2010

Я работаю над сложным приложением, и у меня проблема с тем, что список не ограничен высотой окна.Вот упрощенная версия того, как это выглядит.Как бы я получить этот список правильно ограничен окном?Прямо сейчас нижняя кнопка прокрутки находится за пределами экрана и не видна, пока окно не станет достаточно большим, чтобы вместить весь список.Мне нужно найти решение, которое делает список всегда ограниченным, потому что мне нужно реализовать масштабирование с помощью ScaleTransform.

<Grid>        
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="300" />
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
        <Grid Name="stack">
            <Grid.LayoutTransform>
                <ScaleTransform
                 ScaleX="{Binding ElementName=slider, Path=Value}" 
                 ScaleY="{Binding ElementName=slider, Path=Value}" />
            </Grid.LayoutTransform>
            <WrapPanel HorizontalAlignment="Left">
                <Expander IsExpanded="False" Width="300">hey</Expander>
                <Expander IsExpanded="True"  VerticalAlignment="Stretch" ClipToBounds="True">
                    <Grid>                            
                        <ListBox >                            
                            <Button>hey</Button>
                            <!-- just add a lot more of these to see the problem -->
                            <Button>hey</Button>
                         </ListBox>
                    </Grid>
                </Expander>
            </WrapPanel>

        </Grid>
    <Slider Grid.Column="1" Name="slider" Minimum="1" Maximum="4" Value="1" />

</Grid>

1 Ответ

1 голос
/ 16 июня 2010

попробуйте следующий код:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Border Grid.Row="0">
        <Grid Name="stack">
            <Grid.LayoutTransform>
                <ScaleTransform ScaleX="{Binding ElementName=slider, Path=Value}"
                                ScaleY="{Binding ElementName=slider, Path=Value}" />
            </Grid.LayoutTransform>
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="*" />
                </Grid.RowDefinitions>
                <Border Grid.Row="0">
                    <Expander IsExpanded="False"
                              Width="300">hey</Expander>
                </Border>
                <Border Grid.Row="1">
                    <Expander IsExpanded="True"
                              VerticalAlignment="Stretch"
                              ClipToBounds="True">
                        <Grid>
                            <ListBox>
                                <Button>hey</Button>
                                <Button>hey</Button>
                                <Button>hey</Button>
                                <Button>hey</Button>
                                <Button>hey</Button>
                                <Button>hey</Button>
                                <!-- just add a lot more of these to see the problem -->
                                <Button>hey</Button>
                            </ListBox>
                        </Grid>
                    </Expander>
                </Border>
            </Grid>
        </Grid>
    </Border>
    <Border Grid.Row="1">
        <Slider Name="slider"
                Minimum="1"
                Maximum="4"
                Value="1" />
    </Border>
</Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...