我正在尝试在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边距,但这没有区别。堆栈面板是此列中的唯一对象。
边框的默认水平对齐等于Stretch
,因此它需要完全可能的宽度。 然后 StackPanel 在边框内居中,因为它有HorizontalAlignment="Center"
.
在"边框"上设置HorizontalAlignment="Center"
。它将获得宽度,等于堆栈面板宽度(加上边距(,然后居中
我认为这是因为您将水平对齐设置为居中。这样做将使 StackPanel 的大小调整为其内容。
如果将边框移动到堆栈面板,您的问题将得到解决:)
在这里:
<Grid>
<StackPanel Width="350" Height="200">
<Border BorderThickness="2" BorderBrush="Black" Width="350" Height="200">
<TextBlock>SomeText</TextBlock>
</Border>
</StackPanel>
</Grid>