如何去除Flex 4 TextArea组件(Spark主题halo)的边框?

5

使用Flex 3 SDK时,您只需将borderThickness样式设置为0或将borderStyle设置为none即可。但在Flex 4 SDK和Spark主题中,这没有任何效果。

7个回答

9

可以尝试以下方式:

borderVisible="false"

2
如果你想要移除spark文本区域的边框,可以尝试以下方法: 要让所有spark文本区域都没有边框,可以这样做:
s|TextArea {
  borderVisible : false;
}

您还可以创建简单的样式,并将其仅应用于特定的Spark TextArea,如下所示:
.noBorder {
  borderVisible : false;
}
...
<s:TextArea styleName="noBorder"/>

您可以通过创建完成来关闭它,如下所示:

您可以通过创建完成来关闭它,如下所示:

<s:Application ...
  creationComplete="onCreationComplete()"/>
...
private function onCreationComplete() : void {
  mySparkTextArea.setStyle('borderVisible', false);
}
...
<s:TextArea id="mySparkTextArea"/>
</s:Application>

最后,你可以按照DrMaxmAd的建议制作皮肤,如下所示:
...
<!-- border/fill --> 
<s:Rect left="0" right="0" top="0" bottom="0">
    <s:stroke>
        <s:SolidColorStroke color="#5C5C5C" weight="1" alpha="0"/>            
    </s:stroke>
    <s:fill>
        <s:SolidColor color="#FFFFFF"/>
    </s:fill>
</s:Rect>
...

1

你必须将borderSkin设置为null

<mx:TextArea borderSkin={null} />

问题是关于 spark.components.TextArea,而不是 mx.controls.TextArea。 - Alexander Farber

1

我还没有涉足Flash Builder 4,但我知道在Flex 3中,您可以修改这样的东西(当其他方式不可行时):

var tb:TextInput = new TextInput();
tb.getChildAt(0).setStyle(...);

你可以试试这个方法,通常只需要找到正确的子元素即可。

编辑: 这里是你的答案


0

我尝试了上面的代码,但在Flex Hero SDK 4.5中并没有起作用。所以我选择了textArea并创建了一个新的自定义皮肤,并将边框透明度更改为0。

<!-- border/fill --> 
    <s:Rect left="0" right="0" top="0" bottom="0">
        <s:stroke>
            <s:SolidColorStroke color="#5C5C5C" weight="1" alpha="0"/>            
        </s:stroke>
        <s:fill>
            <s:SolidColor color="#FFFFFF"/>
        </s:fill>
    </s:Rect>

简单而甜美


0

Jeol的答案适用于MX组件,对于Flex 4 Spark文本区域组件,您需要设置borderVisible="false",并在代码中使用lblMessage.setStyle("contentBackgroundAlpha", 0)。

此外,如果您正在这样做,您可能希望使用hack使该死的东西自动调整大小以适应其内容...设置heightInLines="{NaN}"

<s:TextArea borderVisible="false" focusEnabled="false" width="100%" id="lblMessage" heightInLines="{NaN}"  editable="false" selectable="true" lineBreak="toFit" verticalScrollPolicy="off" horizontalScrollPolicy="off" />

protected function OnCreationComplete(objEvent:Event):void{
   lblMessage.setStyle("contentBackgroundAlpha", 0);
 }

...感谢RobotLegs,它真是太棒了!


0
在Flex 3中,TextArea组件的边框可以通过使用以下两个属性/属性来控制:
  • borderSkin =“{null}”
  • focusAlpha =“0”
焦点alpha确保即使选择了TextArea,您也不会看到边框出现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接