0

在 flex 3 中,如何使部分复选框标签为粗体?说复选框标签是“记住数据网格上的值”。需要将文本“datagrid”单独加粗。任何人都可以请帮忙。提前致谢。

4

1 回答 1

0

这不是完美的解决方案,但可以帮助您入门。如果您扩展 CheckBox 类,您可以覆盖该方法,并使用它的属性updateDisplayList()设置复选框的标签。htmlText

然后使用这个自定义复选框并传入一个带有 HTML 的标签。

此解决方案的问题:

  • 超类没有测量 HTML 格式的文本(你可以实现measure()Flex 生命周期方法)
  • 在 super.updateDisplayList() 完成所有工作之后,我们使用 htmlText属性将其撤消

HTMLTextCheckBox.as:

package
{
    import mx.controls.CheckBox;

    public class HtmlTextCheckBox extends CheckBox
    {
        public function HtmlTextCheckBox()
        {
            super();
        }

        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
        {
            super.updateDisplayList(unscaledWidth, unscaledHeight);
            textField.htmlText = label;
        }
    }
}

使用它 MXML:

<local:HtmlTextCheckBox label="this is the &lt;b&gt;bold part&lt;/b&gt;"/>

或者在 AS3 中:

var cb:HtmlTextCheckBox = new HtmlTextCheckBox();
cb.text = "this is the <b>bold part</b>";
于 2012-09-03T16:06:07.370 回答