【发布时间】:2011-11-09 08:33:54
【问题描述】:
希望我的问题足够简单 :) 我将 BORDER 作为具有一些角半径的主容器。它里面有一个网格,如果我想为网格设置一些背景颜色 - 角落外面有一个丑陋的填充部分变成......
那么,我怎样才能将我的 BORDER 设置为一个全局容器,并且里面的所有内容都保留在里面?
谢谢!
【问题讨论】:
标签: wpf visual-studio-2010 xaml
希望我的问题足够简单 :) 我将 BORDER 作为具有一些角半径的主容器。它里面有一个网格,如果我想为网格设置一些背景颜色 - 角落外面有一个丑陋的填充部分变成......
那么,我怎样才能将我的 BORDER 设置为一个全局容器,并且里面的所有内容都保留在里面?
谢谢!
【问题讨论】:
标签: wpf visual-studio-2010 xaml
查看以下问题:How to make the contents of a round-cornered border be also round-cornered?
ClippingBorder 来自答案在这方面做得很好。这是常规Border 和ClippingBorder 之间的比较。
<StackPanel Orientation="Horizontal">
<Border CornerRadius="20,20,20,20"
BorderThickness="4"
BorderBrush="Black"
Width="50"
Height="50">
<Grid Background="Red"/>
</Border>
<controls:ClippingBorder CornerRadius="20,20,20,20"
BorderThickness="4"
BorderBrush="Black"
Width="50"
Height="50"
Margin="20,0,0,0">
<Grid Background="Red"/>
</controls:ClippingBorder>
</StackPanel>
【讨论】:
Border 的内容不能超出Border。例如,您想显示带有圆角和边框的地图或照片
Clip 属性的孩子,所以应该没有任何问题 :)
如果您希望背景颜色填充圆角,则需要在边框本身上设置背景属性,而不是在其中的网格上。现在,如果您只想让网格完全位于边框内,请在网格中设置一个边距,以补偿圆角半径:
<Border CornerRadius="10"
BorderBrush="Black"
BorderThickness="5"
Background="Green">
<Grid Background="Red"
Margin="2.5">
</Grid>
</Border>
【讨论】: