Wpf 具有圆角的多个嵌套边框。如何?
我想显示由多个不同颜色的边框和圆角包围的内容。我尝试使用角半径,但在嵌套边界上永远无法获得完美的角(即与父边界的角相邻)。在这种情况下,如果有的话,推荐的做法是什么? 以下是我尝试的:Wpf 具有圆角的多个嵌套边框。如何?,wpf,xaml,Wpf,Xaml,我想显示由多个不同颜色的边框和圆角包围的内容。我尝试使用角半径,但在嵌套边界上永远无法获得完美的角(即与父边界的角相邻)。在这种情况下,如果有的话,推荐的做法是什么? 以下是我尝试的: <Border Grid.Row="1" Grid.Column="1" CornerRadius="3" BorderThickness="3" BorderBrush="#FAFAFA"Background="#FAFAFA" Margin="40,40,40,40" Padding="0">
<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>
谢谢。您必须考虑到
边框厚度增加了边框控件的总宽度或高度。您可以将其视为边界线的一半位于控件内部,另一半位于控件外部。另一方面,拐角半径
是相对于边界线的中心给出的
因此,内半径和外半径之间的差值应等于两个边界厚度的一半(加上外部填充
和内部边距
)
嵌套边框的边框厚度
各为3,外部拐角半径
也为3,这将导致内部拐角半径
为0
您只需将内部拐角半径设置为某个合理的值,并将外部的值加上3即可:
<Border BorderBrush="Blue" BorderThickness="3" CornerRadius="6">
<Border BorderBrush="Red" BorderThickness="3" CornerRadius="3">
</Border>
</Border>