Пользовательские элементы условных обозначений в элементах управления диаграммы

По умолчанию каждый элемент условных обозначений привязан к ряду, а свойства условных обозначений одинаковы для всех рядов.Можно использовать пользовательские элементы условных обозначений, которые не привязаны ни к одному ряду и позволяют настраивать внешний вид, расположение и поля для каждой ячейки.Для этого с помощью свойства коллекции Legend.CustomItems (объект LegendItemCollection) добавьте настраиваемый элемент условных обозначений (объект LegendItem) в условные обозначения.Элементы условных обозначений из этой коллекции всегда добавляются в конец списка других элементов условных обозначений.

Элементы условных обозначений в коллекции Legend.CustomItems позволяют выполнять следующие операции.

  • Указывать символ с помощью свойства LegendItem.ImageStyle.Можно выбрать прямоугольник, линию и маркер.

  • Использовать в качестве символов изображения с помощью свойства LegendItem.Image или LegendItem.MarkerImage.

  • Добавлять ячейки к условным обозначениям.

  • Изменять внешний вид, расположение и поля для каждой ячейки.

Использование ячеек в настраиваемых элементах условных обозначений

Чтобы добавить ячейки условных обозначений (объекты LegendCell) в настраиваемый элемент условных обозначений, используйте свойство коллекции LegendItem.Cells (объект LegendCellCollection).

Укажите тип ячейки в свойстве LegendCell.CellType.Если установить это свойство в значение LegendCellType.SeriesSymbol, то в ячейке условных обозначений будет использоваться символ, который используется в содержащем ячейку элементе условных обозначений.

Чтобы объединить две соседние ячейки, например для размещения длинных строк, используйте свойство LegendCell.CellSpan.

Если в элементе условных обозначений находится хотя бы одна ячейка, то свойства внешнего вида элемента условных обозначений не действуют.

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

Dim avgWA As Double = Chart1.DataManipulator.Statistics.Mean("WA") 
Dim avgOR As Double = Chart1.DataManipulator.Statistics.Mean("OR") 
Dim avgCA As Double = Chart1.DataManipulator.Statistics.Mean("CA") 
Dim top As String = (If(avgWA >= avgOR, "Washington", "Oregon")) 
If avgCA >= avgWA AndAlso avgCA >= avgOR Then 
   top = "California" 
End If 

Dim newItem As New LegendItem() 
newItem.ImageStyle = LegendImageStyle.Marker 
newItem.MarkerStyle = MarkerStyle.Diamond 
newItem.Cells.Add(LegendCellType.SeriesSymbol, "", ContentAlignment.MiddleCenter) 
newItem.Cells.Add(LegendCellType.Text, "State Average =", ContentAlignment.MiddleCenter) 
newItem.Cells(1).CellSpan = 2 
newItem.Cells.Add(LegendCellType.Text, "", ContentAlignment.MiddleCenter) 
newItem.Cells.Add(LegendCellType.Text, top, ContentAlignment.MiddleCenter) 
Chart1.Legends(0).CustomItems.Add(newItem) 
double avgWA = Chart1.DataManipulator.Statistics.Mean("WA");
double avgOR = Chart1.DataManipulator.Statistics.Mean("OR");
double avgCA = Chart1.DataManipulator.Statistics.Mean("CA");
String top = (avgWA >= avgOR ? "Washington":"Oregon");
if (avgCA >= avgWA && avgCA >= avgOR) 
   top = "California";

LegendItem newItem = new LegendItem();
newItem.ImageStyle = LegendImageStyle.Marker;
newItem.MarkerStyle = MarkerStyle.Diamond;
newItem.Cells.Add(LegendCellType.SeriesSymbol, "", ContentAlignment.MiddleCenter);
newItem.Cells.Add(LegendCellType.Text, "State Average =", ContentAlignment.MiddleCenter);
newItem.Cells[1].CellSpan = 2;
newItem.Cells.Add(LegendCellType.Text, "", ContentAlignment.MiddleCenter);
newItem.Cells.Add(LegendCellType.Text, top, ContentAlignment.MiddleCenter);
Chart1.Legends[0].CustomItems.Add(newItem);

См. также

Ссылки

System.Windows.Forms.DataVisualization.Charting

System.Web.UI.DataVisualization.Charting

Основные понятия

Условные обозначения