Gets or sets the color used to color specified dimension values/measures.
Namespace: DevExpress.DashboardCommon
Assembly: DevExpress.Dashboard.v18.2.Core.dll
public ColorDefinition ColorDefinition { get; set; }
Public Property ColorDefinition As ColorDefinition
Type | Default | Description |
---|---|---|
ColorDefinition | null |
A ColorDefinition object that specifies the color used to color specified dimension values/measures. |
To specify dimension values/measures to be colored, use the ColorSchemeEntry.DimensionKeys and ColorSchemeEntry.MeasureKey properties, respectively.
The following example demonstrates how to customize a dashboard color scheme to color specified dimension values using predefined colors.
In this example, the dashboard contains Pie and Chart dashboard items, whose dimension values are colored by hue. Dimension values and corresponding colors are stored in a data table.
To add custom colors to the dashboard color scheme (the Dashboard.ColorScheme property), ColorSchemeEntry objects are created. The ColorSchemeEntry class allows you to specify the following properties:
A complete sample project is available at https://github.com/DevExpress-Examples/how-to-customize-a-dashboard-color-scheme-t184002.
using System.Data;
using System.Drawing;
using DevExpress.XtraBars.Ribbon;
using DevExpress.DashboardCommon;
namespace Dashboard_Coloring {
public partial class Form1 : RibbonForm {
public Form1() {
InitializeComponent();
dashboardDesigner1.CreateRibbon();
// Creates a color table containing dimension values, measures and corresponding colors.
DataTable colorTable = CreateColorTable();
// Loads a dashboard from the XML file.
Dashboard dashboard = new Dashboard(); dashboard.LoadFromXml(@"..\..\Data\Dashboard.xml");
IDashboardDataSource dataSource = dashboard.DataSources["dataSource1"];
// Specifies the coloring mode for the specified pie series, pie measures and chart argument.
PieDashboardItem pie1 = (PieDashboardItem)dashboard.Items["pieDashboardItem1"];
ChartDashboardItem chart1 = (ChartDashboardItem)dashboard.Items["chartDashboardItem1"];
pie1.SeriesDimensions[0].ColoringMode = ColoringMode.Hue;
pie1.ColoringOptions.MeasuresColoringMode = ColoringMode.Hue;
chart1.Arguments[0].ColoringMode = ColoringMode.Hue;
foreach (DataRow row in colorTable.Rows) {
dashboard.ColorScheme.Add(CreateColorSchemeEntry(row, dataSource, false));
dashboard.ColorScheme.Add(CreateColorSchemeEntry(row, dataSource, true));
}
dashboardDesigner1.Dashboard = dashboard;
}
// Creates color scheme entries used to map dimension values, measures and colors.
private ColorSchemeEntry CreateColorSchemeEntry(DataRow colorSchemeRecord,
IDashboardDataSource dataSource,
bool includeMeasures) {
DimensionDefinition categoryDefinition = new DimensionDefinition("CategoryName");
DimensionDefinition countryDefinition = new DimensionDefinition("Country");
MeasureDefinition priceDefinition = new MeasureDefinition("Extended Price");
ColorSchemeEntry entry = new ColorSchemeEntry();
entry.DimensionKeys.Add(new ColorSchemeDimensionKey(categoryDefinition,
colorSchemeRecord["CategoryName"]));
entry.DimensionKeys.Add(new ColorSchemeDimensionKey(countryDefinition,
colorSchemeRecord["Country"]));
if(includeMeasures)
entry.MeasureKey = new ColorSchemeMeasureKey(priceDefinition);
entry.ColorDefinition = new ColorDefinition((Color)colorSchemeRecord["color"]);
entry.DataSource = dataSource;
return entry;
}
private DataTable CreateColorTable() {
DataTable colorTable = new DataTable();
colorTable.Columns.Add("CategoryName", typeof(string));
colorTable.Columns.Add("Country", typeof(string));
colorTable.Columns.Add("measure", typeof(string));
colorTable.Columns.Add("color", typeof(Color));
colorTable.Rows.Add("Beverages", "UK", "Extended Price", Color.Red);
colorTable.Rows.Add("Beverages", "USA", "Extended Price", Color.Green);
return colorTable;
}
}
}
Imports System.Data
Imports System.Drawing
Imports DevExpress.XtraBars.Ribbon
Imports DevExpress.DashboardCommon
Namespace Dashboard_Coloring
Partial Public Class Form1
Inherits RibbonForm
Public Sub New()
InitializeComponent()
dashboardDesigner1.CreateRibbon()
' Creates a color table containing dimension values, measures and corresponding colors.
Dim colorTable As DataTable = CreateColorTable()
' Loads a dashboard from the XML file.
Dim dashboard As New Dashboard()
dashboard.LoadFromXml("..\..\Data\Dashboard.xml")
Dim dataSource As IDashboardDataSource = dashboard.DataSources("dataSource1")
' Specifies the coloring mode for the specified pie series, pie measures and chart argument.
Dim pie1 As PieDashboardItem = CType(dashboard.Items("pieDashboardItem1"), PieDashboardItem)
Dim chart1 As ChartDashboardItem = CType(dashboard.Items("chartDashboardItem1"), _
ChartDashboardItem)
pie1.SeriesDimensions(0).ColoringMode = ColoringMode.Hue
pie1.ColoringOptions.MeasuresColoringMode = ColoringMode.Hue
chart1.Arguments(0).ColoringMode = ColoringMode.Hue
For Each row As DataRow In colorTable.Rows
dashboard.ColorScheme.Add(CreateColorSchemeEntry(row, dataSource, False))
dashboard.ColorScheme.Add(CreateColorSchemeEntry(row, dataSource, True))
Next row
dashboardDesigner1.Dashboard = dashboard
End Sub
' Creates color scheme entries used to map dimension values, measures and colors.
Private Function CreateColorSchemeEntry(ByVal colorSchemeRecord As DataRow, _
ByVal dataSource As IDashboardDataSource, _
ByVal includeMeasures As Boolean) As ColorSchemeEntry
Dim categoryDefinition As New DimensionDefinition("CategoryName")
Dim countryDefinition As New DimensionDefinition("Country")
Dim priceDefinition As New MeasureDefinition("Extended Price")
Dim entry As New ColorSchemeEntry()
entry.DimensionKeys.Add(New ColorSchemeDimensionKey(categoryDefinition, _
colorSchemeRecord("CategoryName")))
entry.DimensionKeys.Add(New ColorSchemeDimensionKey(countryDefinition, _
colorSchemeRecord("Country")))
If includeMeasures Then
entry.MeasureKey = New ColorSchemeMeasureKey(priceDefinition)
End If
entry.ColorDefinition = New ColorDefinition(DirectCast(colorSchemeRecord("color"), Color))
entry.DataSource = dataSource
Return entry
End Function
Private Function CreateColorTable() As DataTable
Dim colorTable As New DataTable()
colorTable.Columns.Add("CategoryName", GetType(String))
colorTable.Columns.Add("Country", GetType(String))
colorTable.Columns.Add("measure", GetType(String))
colorTable.Columns.Add("color", GetType(Color))
colorTable.Rows.Add("Beverages", "UK", "Extended Price", Color.Red)
colorTable.Rows.Add("Beverages", "USA", "Extended Price", Color.Green)
Return colorTable
End Function
End Class
End Namespace