我只需要在边框容器的顶部或底部进行舍入,而不是全部四个角,它们是我可以使用的一些 CSS,还是我必须创建两个新皮肤。我在过去读到它们曾经是 HBox 的属性,现在它们不是 BorderContainer 的属性吗?
问问题
4946 次
1 回答
9
使用 BorderContainer 你不能。但是,您可以使用 SkinnableContainer 和自定义皮肤轻松创建您想要实现的视觉效果。实际上 BorderContainer 只是 SkinnableContainer 的一种特定形式。
因此,不要使用 BorferContainer 创建一个具有属性“skinClass”的 SkinnableContainer:
<s:SkinnableContainer left="0" right="0" top="0" bottom="0"
skinClass="my.app.skins.TopRoundedCornerSkin">
<!--- your components go here --->
</s:SkinnableContainer>
然后像这样创建皮肤类 TopRoundedCornerSkin.mxml:
<s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Metadata>
[HostComponent("spark.components.SkinnableContainer")]
</fx:Metadata>
<s:states>
<s:State name="normal" />
<s:State name="disabled" />
</s:states>
<s:Rect id="background" left="0" right="0" top="0" bottom="0"
topLeftRadiusX="10" topLeftRadiusY="10"
topRightRadiusX="10" topRightRadiusY="10">
<s:fill>
<s:SolidColor color="0xffffff" />
</s:fill>
<s:stroke>
<s:SolidColorStroke color="0x000000" />
</s:stroke>
</s:Rect>
<s:Group id="contentGroup" left="10" right="10" top="10" bottom="10"
minWidth="0" minHeight="0" />
</s:Skin>
在背景矩形上,我们设置了 4 个半径属性来创建您需要的圆角。
于 2011-07-09T11:07:15.197 回答