为什么WPF边框显示在柱周围而不是StackPanel?
我试图在StackPanel周围放置一个边框,如下所示:为什么WPF边框显示在柱周围而不是StackPanel?,wpf,xaml,Wpf,Xaml,我试图在StackPanel周围放置一个边框,如下所示: <Border CornerRadius="5" BorderBrush="#009999" Background="Transparent" BorderThickness="2" Grid.Column="2" Grid.Row="0"> <StackPanel HorizontalAlignment="Center" Margin="0,30,0,0"> &
<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是本栏中唯一的对象。我认为这是因为您将水平对齐设置为中心。这样做将使StackPanel的大小与它的内容一致。如果将边框移动到StackPanel,您的问题将得到解决:) 这是:
<Grid>
<StackPanel Width="350" Height="200">
<Border BorderThickness="2" BorderBrush="Black" Width="350" Height="200">
<TextBlock>SomeText</TextBlock>
</Border>
</StackPanel>
</Grid>
一些文字
边框的默认水平对齐方式等于拉伸
,因此它采用可能的全宽。
然后StackPanel在边框内居中,因为它具有HorizontalAlignment=“Center”
在边框上设置
HorizontalAlignment=“Center”
。它将获得宽度,等于StackPanel宽度(加上边距),然后将居中在边框上设置HorizontalAlignment=“Center”。默认情况下,是谁干的!如果你想把它作为一个答案发布,我会正确地标记它,谢谢!