Back to Devexpress

DashboardViewer.DashboardItemElementCustomColor Event

dashboard-devexpress-dot-dashboardwin-dot-dashboardviewer-3799afb7.md

latest8.3 KB
Original Source

DashboardViewer.DashboardItemElementCustomColor Event

Allows you to color the required dashboard item elements using the specified colors.

Namespace : DevExpress.DashboardWin

Assembly : DevExpress.Dashboard.v25.2.Win.dll

NuGet Package : DevExpress.Win.Dashboard

Declaration

csharp
public event DashboardItemElementCustomColorEventHandler DashboardItemElementCustomColor
vb
Public Event DashboardItemElementCustomColor As DashboardItemElementCustomColorEventHandler

Event Data

The DashboardItemElementCustomColor event's data class is DashboardItemElementCustomColorEventArgs. The following properties provide information specific to this event:

PropertyDescription
ColorGets or sets the color of the dashboard item element.
DashboardItemNameGets the component name of the dashboard item for which the event was raised.
DataGets multidimensional data displayed in the dashboard item.
MeasuresGets measures corresponding to the current dashboard item element.
TargetElementGets the axis point tuple corresponding to the current dashboard item element.

Remarks

The DashboardItemElementCustomColor event allows you to color the required dashboard item elements (for instance, chart series points, pie segments or scatter chart points) using the specified colors. The DashboardItemElementCustomColorEventArgs class exposes the following settings that allow you to color the required element.

Note

By default, the Chart dashboard item colors lines (or fills areas) for the Line/Area series types using the color of the first series point. For these lines/areas, the DashboardItemElementCustomColorEventArgs.TargetElement property returns a tuple that does not contain the AxisPoint on the DashboardDataAxisNames.ChartArgumentAxis.

Important

Note that color modifications applied using the DashboardItemElementCustomColor event are not applied in the resulting exported document.

Example

The following code snippets show how to color dashboard item elements using the DashboardViewer.DashboardItemElementCustomColor event.

In this example, chart series points, whose values exceed specified thresholds, are colored in green. Chart series points, whose values fall below specified thresholds, are colored in red.

Pie segments, whose contributions in total fall below the specified threshold, are colored in orange.

csharp
using System.Drawing;
using DevExpress.XtraEditors;
using DevExpress.DashboardWin;
using DevExpress.DashboardCommon;
using DevExpress.DashboardCommon.ViewerData;

namespace Dashboard_ElementCustomColor {
    public partial class Form1 : XtraForm {
        public Form1() {
            InitializeComponent();
            dashboardViewer1.LoadDashboard(@"..\..\Data\Dashboard.xml");
        }

        private void dashboardViewer1_DashboardItemElementCustomColor(object sender,             
            DashboardItemElementCustomColorEventArgs e) {

            MultiDimensionalData data = e.Data;
            AxisPointTuple currentElement = e.TargetElement;

            if (e.DashboardItemName == "chartDashboardItem1") {
                string country = 
                    currentElement.GetAxisPoint(DashboardDataAxisNames.ChartSeriesAxis).Value.ToString();
                decimal value = (decimal)(data.GetSlice(currentElement)).GetValue(e.Measures[0]).Value;
                if (country == "UK" && value > 50000 || country == "USA" && value > 100000)
                    e.Color = Color.DarkGreen;
                else 
                    e.Color = Color.DarkRed;
            }
            if (e.DashboardItemName == "pieDashboardItem1") {
                decimal value = 
                    (decimal)(data.GetSlice(currentElement)).GetValue(data.GetMeasures()[0]).Value;
                if (value < 100000)
                    e.Color = Color.Orange;
            }
        }
    }
}
vb
Imports System.Drawing
Imports DevExpress.XtraEditors
Imports DevExpress.DashboardWin
Imports DevExpress.DashboardCommon
Imports DevExpress.DashboardCommon.ViewerData

Namespace Dashboard_ElementCustomColor
    Partial Public Class Form1
        Inherits XtraForm

        Public Sub New()
            InitializeComponent()
            dashboardViewer1.LoadDashboard("..\..\Data\Dashboard.xml")
        End Sub

        Private Sub dashboardViewer1_DashboardItemElementCustomColor(ByVal sender As Object, _
                                     ByVal e As DashboardItemElementCustomColorEventArgs) _
                                 Handles dashboardViewer1.DashboardItemElementCustomColor

            Dim data As MultiDimensionalData = e.Data
            Dim currentElement As AxisPointTuple = e.TargetElement

            If e.DashboardItemName = "chartDashboardItem1" Then
                Dim country As String = _
                    currentElement.GetAxisPoint(DashboardDataAxisNames.ChartSeriesAxis).Value.ToString()
                Dim value As Decimal = _
                    CDec((data.GetSlice(currentElement)).GetValue(e.Measures(0)).Value)
                If country = "UK" AndAlso value > 50000 OrElse country = "USA" AndAlso value > 100000 _
                    Then
                    e.Color = Color.DarkGreen
                Else
                    e.Color = Color.DarkRed
                End If
            End If
            If e.DashboardItemName = "pieDashboardItem1" Then
                Dim value As Decimal = _
                    CDec((data.GetSlice(currentElement)).GetValue(data.GetMeasures()(0)).Value)
                If value < 100000 Then
                    e.Color = Color.Orange
                End If
            End If
        End Sub
    End Class
End Namespace

Implements

DashboardItemElementCustomColor

See Also

DashboardViewer Class

DashboardViewer Members

DevExpress.DashboardWin Namespace