Back to Devexpress

How to: Add a Custom Legend Item

windowsforms-115947-controls-and-libraries-chart-control-examples-chart-elements-how-to-add-a-custom-legend-item.md

latest3.2 KB
Original Source

How to: Add a Custom Legend Item

  • Nov 13, 2018
  • 2 minutes to read

This example demonstrates how to add a custom legend item to a legend.

View Example

Create a CustomLegendItem object and add it to the CustomItems collection. Use the following properties to configure the custom item:

CustomLegendItem.MarkerImageReturns the custom legend item’s marker image.CustomLegendItem.TextGets or sets the text the custom legend item displays.

Note

To show custom and automatically generated legend items, set the LegendBase.ItemVisibilityMode to AutoGeneratedAndCustom.

cs
using DevExpress.Drawing;
using DevExpress.XtraCharts;
using System;
using System.IO;
using System.Windows.Forms;

namespace CustomLegendItemSample {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e) {
            #region #CustomLegendItems
            // Create a new custom item.
            CustomLegendItem item = new CustomLegendItem();
            chart.Legend.CustomItems.Add(item);
            // Specify its text and marker.
            item.Text = "Custom Legend Item";
            FileStream outfile = new FileStream("Image\\DXLogo_16x16.png", FileMode.Open);
            DXImage image = DXImage.FromStream(outfile);
            item.MarkerImage.DXImage = image;

            // Set a value indicating that both autogenerated and custom items are displayed.
            chart.Legend.ItemVisibilityMode = LegendItemVisibilityMode.AutoGeneratedAndCustom;
            #endregion #CustomLegendItems
        }
    }
}
vb
Imports DevExpress.Drawing
Imports DevExpress.XtraCharts
Imports System
Imports System.IO
Imports System.Windows.Forms

Namespace CustomLegendItemSample

    Public Partial Class Form1
        Inherits Form

        Public Sub New()
            InitializeComponent()
        End Sub

        Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
#Region "#CustomLegendItems"
            ' Create a new custom item.
            Dim item As CustomLegendItem = New CustomLegendItem()
            chart.Legend.CustomItems.Add(item)
            ' Specify its text and marker.
            item.Text = "Custom Legend Item"
            Dim outfile As FileStream = New FileStream("Image\DXLogo_16x16.png", FileMode.Open)
            Dim image As DXImage = DXImage.FromStream(outfile)
            item.MarkerImage.DXImage = image
            ' Set a value indicating that both autogenerated and custom items are displayed.
            chart.Legend.ItemVisibilityMode = LegendItemVisibilityMode.AutoGeneratedAndCustom
#End Region ' #CustomLegendItems
        End Sub
    End Class
End Namespace