Установка различных стилей подсказок для диаграмм в компонентах 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| и с | как префиксы к вашим стилям.