Почему эта граница WPF отображается вокруг столбца, а не StackPanel? - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь разместить границу вокруг StackPanel следующим образом:

<Border CornerRadius="5" BorderBrush="#009999" Background="Transparent" 
        BorderThickness="2" Grid.Column="2" Grid.Row="0">
      <StackPanel HorizontalAlignment="Center" Margin="0,30,0,0">
           <!--Contents-->
      </StackPanel>
</Border>

По какой-то причине граница появляется вокруг столбца, в котором находится StackPanel, а не самой StackPanel.Я могу изменить поле границы, но это не удерживается, если размер экрана изменяется.Я также пытался избавиться от поля StackPanel, но это не имело никакого значения.StackPanel - единственный объект в этом столбце.

Ответы [ 3 ]

0 голосов
/ 17 октября 2018

Если вы переместите границу на панель стека, ваши проблемы будут исправлены:)

здесь:

<Grid>
    <StackPanel Width="350" Height="200">
        <Border BorderThickness="2" BorderBrush="Black" Width="350" Height="200">
            <TextBlock>SomeText</TextBlock>
        </Border>
    </StackPanel>
</Grid>
0 голосов
/ 17 октября 2018

Граница имеет горизонтальное выравнивание по умолчанию, равное Stretch, поэтому она занимает всю возможную ширину.Затем StackPanel центрируется внутри границы, потому что у него HorizontalAlignment="Center".

установлено HorizontalAlignment="Center" на границе.Он получит ширину, равную ширине StackPanel (плюс Margin), а затем будет центрирован

0 голосов
/ 17 октября 2018

Я думаю, это потому, что вы устанавливаете горизонтальное выравнивание по центру.В результате размер StackPanel будет таким же, как и его содержимое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...