Apache flex 如何在Spark TextArea中的每行文本下显示一行

Apache flex 如何在Spark TextArea中的每行文本下显示一行,apache-flex,flex4,flex-spark,Apache Flex,Flex4,Flex Spark,我试图在Spark TextArea中的每行文本下显示一条水平线。我想让文本区域看起来像法律文件。设置控件的样式。设置控件的样式。在Flex 3中,Ah实际上遇到了类似的问题,删除了作为我们样式一部分的禁用链接按钮。刚刚检查了代码并查看了spark标签的文档,发现我在mx标签中使用的函数明确表示它无法工作[从spark标签中的measureText()开始]: 测量指定的文本,假设它显示在 使用UITextFormat的单行UITextField(或UIFTextField) 由此组件的样式确定

我试图在Spark TextArea中的每行文本下显示一条水平线。我想让文本区域看起来像法律文件。

设置控件的样式。

设置控件的样式。

在Flex 3中,Ah实际上遇到了类似的问题,删除了作为我们样式一部分的禁用链接按钮。刚刚检查了代码并查看了spark标签的文档,发现我在mx标签中使用的函数明确表示它无法工作[从spark标签中的measureText()开始]:

测量指定的文本,假设它显示在 使用UITextFormat的单行UITextField(或UIFTextField) 由此组件的样式确定。不适用于Spark 组件,因为它们不使用UITextField(或uiftextfield)。到 在Spark components中测量文本,获得一个 spark.components.Label或spark.components.RichText

所以我重新思考:

<?xml version="1.0" encoding="utf-8"?>
<s:Label xmlns:fx="http://ns.adobe.com/mxml/2009"
         xmlns:s="library://ns.adobe.com/flex/spark">
    <fx:Script>
        <![CDATA[
            override protected function updateDisplayList(unscaledWidth : Number, unscaledHeight : Number) : void
            {
                super.updateDisplayList(unscaledWidth, unscaledHeight);
                drawLines();
            }

            private function drawLines() : void
            {
                var totalHeight : Number = 0;
                for (var i : int = 0; i < mx_internal::textLines.length; i++)
                {

                    totalHeight = mx_internal::textLines[i].y;
                    graphics.lineStyle(1, 0x000000);
                    graphics.moveTo(0, totalHeight);
                    graphics.lineTo(width, totalHeight);
                }
            }
        ]]>
    </fx:Script>

    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
</s:Label>

在Flex3中,Ah实际上遇到了类似的问题,对禁用的链接按钮进行了删除,这是我们风格的一部分。刚刚检查了代码并查看了spark标签的文档,发现我在mx标签中使用的函数明确表示它无法工作[从spark标签中的measureText()开始]:

测量指定的文本,假设它显示在 使用UITextFormat的单行UITextField(或UIFTextField) 由此组件的样式确定。不适用于Spark 组件,因为它们不使用UITextField(或uiftextfield)。到 在Spark components中测量文本,获得一个 spark.components.Label或spark.components.RichText

所以我重新思考:

<?xml version="1.0" encoding="utf-8"?>
<s:Label xmlns:fx="http://ns.adobe.com/mxml/2009"
         xmlns:s="library://ns.adobe.com/flex/spark">
    <fx:Script>
        <![CDATA[
            override protected function updateDisplayList(unscaledWidth : Number, unscaledHeight : Number) : void
            {
                super.updateDisplayList(unscaledWidth, unscaledHeight);
                drawLines();
            }

            private function drawLines() : void
            {
                var totalHeight : Number = 0;
                for (var i : int = 0; i < mx_internal::textLines.length; i++)
                {

                    totalHeight = mx_internal::textLines[i].y;
                    graphics.lineStyle(1, 0x000000);
                    graphics.moveTo(0, totalHeight);
                    graphics.lineTo(width, totalHeight);
                }
            }
        ]]>
    </fx:Script>

    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
</s:Label>