Макет панели, чтобы равномерно сжать элементы, чтобы соответствовать - PullRequest
0 голосов
/ 24 февраля 2012

Я ищу макет WPF, который работает как панель горизонтальных стеков, чтобы элементы выбирали свою собственную идеальную ширину, когда для них достаточно места, но дополнительно сдавливали элементы равномерно, когда они не помещались вдоступное пространство на панели.

С этим я могу приблизиться к тому, что хочу:

    <Grid Width="400" Height="80">
        <UniformGrid Rows="1"  HorizontalAlignment="Left">
            <Button Content="Long Button" />
            <Button Content="Very Long Button" />
            <Button Content="Button" />
            <Button Content="Button" />
            <Button Content="Button" />
        </UniformGrid>
    </Grid>

Проблема в том, что UniformGrid сохраняет все кнопки одинаковой ширины.

Если я заменим UniformGrid на StackPanel, то размер элементов будет корректным, но когда они превысят максимальный размер, до которого StackPanel может увеличиться (благодаря своему фиксированному родительскому размеру), они обрезаютсявместо того, чтобы быть вынужденным в меньшую область.

Итак, есть ли способ получить желаемое поведение с помощью готовых панелей?

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

Итак, есть ли способ получить желаемое поведение с готовыми панелями?

Нет, если вы посмотрите на все существующиепанели вы увидите, что нет ни одной, которая соответствует требованиям, реализуйте свою собственную.

0 голосов
/ 24 февраля 2012

Если размер кнопок статичен, вы можете использовать это:

<Grid Width="400" Height="80">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="2*"/>
        <ColumnDefinition Width="3*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Button Grid.Column="0" Content="Long Button" />
    <Button Grid.Column="1" Content="Very Long Button" />
    <Button Grid.Column="2" Content="Button" />
    <Button Grid.Column="3" Content="Button" />
    <Button Grid.Column="4" Content="Button" />
</Grid>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...