Установка различных стилей подсказок для диаграмм в компонентах Flex

У меня есть следующая проблема: Моя задача - стилизовать всплывающую подсказку для двух диаграмм в Flex 4.5. Обе диаграммы находятся в двух разных <Group> на основе компонентов, которые добавляются к <Application>

Итак, после тщательного исследования, вот что я пытался сделать. Сначала применил нисходящие селекторы css:

#container#chart1 chartClasses|DataTip{     
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

Таким образом, компонент с Id=container и внутри него диаграммы с id="chart1" не работает, несмотря на то, что в документации Adobe говорится, что так и должно быть. Другой подход, который, как я полагал, должен был решить, заключался в использовании этого стиля CSS.

chartClasses|DataTip{
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

внутри каждого из этих компонентов, но угадайте, что, селектор класса диаграммы DataTip работает только на <Application> level (и затем он применяет один и тот же стиль ко всем всплывающим подсказкам диаграмм, найденным в приложении. Поэтому помещение его в каждый из двух компонентов, содержащих диаграммы, не имеет никакого эффекта.

Затем я создал класс, который подается в стиль диаграммы dataTipRenderer. Затем внутри класса MyCustomDataTipRenderer я установил селектор класса:

.dataTip{
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

И да, это работает. Но допустим, я хочу иметь возможность устанавливать различные стили для настраиваемого средства визуализации всплывающих подсказок на основе диаграммы размещения. Как я могу это сделать? Похоже, что Flex SDK никоим образом не отображает данные datatipRenderer.So. Если я эффективно установлю настраиваемое средство визуализации подсказок данных следующим образом:

columnchart1.setStyle("dataTipRenderer",CustomDataTip); 

Затем я хотел бы иметь возможность получить доступ к экземпляру класса CustomDataTip. Но я не могу. В настоящее время единственное, что я могу сделать, - это создать отдельный пользовательский класс рендерера для всплывающих подсказок для каждой диаграммы. у вас есть только пара диаграмм, которые вы хотите стилизовать, но что мы можем сделать, если у нас их много?

1 ответ

Решение

Попробуйте добавить следующее в начало файла css (при условии, что имя файла - chartStyles.css)

@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "http://www.adobe.com/2006/mxml";

mx|#container#chart1 chartClasses|DataTip{     
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

s|#container#chart1 chartClasses|DataTip{     
    backgroundColor:white;
    backgroundAlpha:0.01;
    fontSize: 12; 
    fontWeight:bold;
    fontStyle:italic; 
}

В том случае, если стили CSS вставлены в тег стиля прямо в основном приложении mxml, тогда нет необходимости в теге @namespace в начале. Вы можете напрямую добавить mx| и с | как префиксы к вашим стилям.

Другие вопросы по тегам