我想显示由多个不同颜色边框和圆角包围的内容。我尝试了角半径,但在嵌套边框上永远无法获得完美的角(即与父边框的角相邻)。在这种情况下,建议的做法是什么? 以下是我的尝试:
<Border Grid.Row="1" Grid.Column="1" CornerRadius="3" BorderThickness="3" BorderBrush="#FAFAFA"Background="#FAFAFA" Margin="40,40,40,40" Padding="0">
<Border.Effect>
<DropShadowEffect Color="#1f40618c" />
</Border.Effect>
<StackPanel>
<Border CornerRadius="3" BorderThickness="3" BorderBrush="#696B6D" Background="#696B6D" Margin="0" Padding="0" >
<Border CornerRadius="2.3" BorderThickness="3" BorderBrush="Black" Margin="0" Padding="32,32,32,16" Background="#102F8C">
<Grid />
</Border>
</Border>
</StackPanel>
</Border>
感谢。
答案 0 :(得分:1)
您必须考虑到BorderThickness
会增加边框控件的总宽度或高度。您可以将其视为边界线的一半位于控件内部而一半位于外部。另一方面,CornerRadius
是相对于边界线的中心给出的。
因此,内半径和外半径之间的差异应该等于两个BorderThickness的一半(加上可能是外Padding
和内Margin
)的总和。
使用嵌套边框,每个BorderThickness
为3,外部CornerRadius
也为3,这将导致内部CornerRadius
为0。
您可以简单地将内部CornerRadius
设置为某个合理的值,并为外部值添加3该值:
<Border BorderBrush="Blue" BorderThickness="3" CornerRadius="6">
<Border BorderBrush="Red" BorderThickness="3" CornerRadius="3">
</Border>
</Border>