Как мы можем динамически изменять размер шрифта и семейство шрифтов DataGrid? - PullRequest
0 голосов
/ 26 апреля 2011

У меня есть экран Flex MyData.mxml, в котором есть таблица значений с использованием DataGrid. Все стили DataGrid включены в файл default.css, который является частью проекта библиотеки Flex. Это будет преобразовано в файл SWC и использовано в проекте Flex, где я использую MyData.mxml.

На экране MyData у нас есть возможность изменить размер шрифта в DataGrid. У нас есть RadioButtonGroup, где пользователь может выбрать одну из двух кнопок выбора:

  • Обычный шрифт (Verdana, 12)
  • Мелкий шрифт (Verdana, 11)

Когда пользователь выбирает кнопку «Нормальный шрифт», все данные в DataGrid должны быть установлены на Verdana 12, а когда пользователь выбирает кнопку «Маленький шрифт», все данные в DataGrid должны быть установлены на Verdana 11.

Как мне этого добиться?

1 Ответ

1 голос
/ 26 апреля 2011

Я полагаю, что следующий код может решить вашу проблему:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application layout="vertical" verticalAlign="middle" xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
    <![CDATA[
        public static const NORMAL_STYLE:String = "normal";
        public static const SMALL_STYLE:String = "small";

        protected function styleGroup_changeHandler(event:Event):void
        {
            var fontFamily:String = "Verdana";
            var fontSize:int;
            switch (styleGroup.selectedValue)
            {
                case NORMAL_STYLE:
                    fontSize = 12;
                    break;
                case SMALL_STYLE:
                    fontSize = 11;
                    break;
            }
            dataGrid.setStyle("fontFamily", fontFamily);
            dataGrid.setStyle("fontSize", fontSize);
        }
    ]]>
    </mx:Script>

    <mx:ArrayCollection id="dataGridData">
        <mx:source>
            <mx:Array>
                <mx:Object first="First1" second="Second1" />
                <mx:Object first="First2" second="Second2" />
            </mx:Array>
        </mx:source>
    </mx:ArrayCollection>

    <mx:DataGrid dataProvider="{dataGridData}" height="200" id="dataGrid">
        <mx:columns>
            <mx:DataGridColumn dataField="first" headerText="First" />
            <mx:DataGridColumn dataField="second" headerText="Second" />
        </mx:columns>
    </mx:DataGrid>
    <mx:RadioButtonGroup change="styleGroup_changeHandler(event)" id="styleGroup" />
    <mx:RadioButton group="{styleGroup}" label="Normal" value="{NORMAL_STYLE}" />
    <mx:RadioButton group="{styleGroup}" label="Small" value="{SMALL_STYLE}" />
</mx:Application>
...