A layout group used to arrange layout items or other groups within a dashboard.
Namespace: DevExpress.DashboardCommon
Assembly: DevExpress.Dashboard.v19.2.Core.dll
public class DashboardLayoutGroup :
DashboardLayoutNode
Public Class DashboardLayoutGroup
Inherits DashboardLayoutNode
The DashboardLayoutGroup class exposes the DashboardLayoutGroup.ChildNodes property that provides access to the collection of child layout groups and items that constitute the current layout group. Use the DashboardLayoutGroup.Orientation property to specify the orientation of layout items/groups within the group.
The DashboardLayoutGroup.Weight property allows specifying the relative size of the layout group.
This example constructs the layout of a sample dashboard that contains the following items:
The Dashboard.LoadFromXml method loads a sample dashboard.
The following steps are taken to create a new layout:
The complete sample project How to modify dashboard layout in code is available in the DevExpress Examples repository.
using System;
using System.Linq;
using DevExpress.XtraEditors;
using DevExpress.DashboardCommon;
using DevExpress.DashboardWin;
//...
Dashboard dashboard = new Dashboard();
dashboard.LoadFromXml(@"Data\LayoutUnordered.xml");
dashboard.BeginUpdate();
// Switch off the DateFilter item's AutoHeight arrangement mode so that the DateFilter layout does not ignore its layout weight.
((DateFilterDashboardItem)(dashboard.Items["dateFilterDashboardItem1"])).ArrangementMode = DateFilterArrangementMode.Horizontal;
// Hide captions.
dashboard.Items.ForEach(item => item.ShowCaption = false);
dashboard.Groups.ForEach(item => item.ShowCaption = false);
// Create layout items for the DateFilter and Chart dashboard items.
DashboardLayoutItem dateFilterLayoutItem = new DashboardLayoutItem(dashboard.Items["dateFilterDashboardItem1"], 13);
DashboardLayoutItem chartLayoutItem = new DashboardLayoutItem(dashboard.Items["chartDashboardItem1"], 87);
// Create a layout item for the dashboard Group item.
DashboardLayoutGroup groupLayoutItem = new DashboardLayoutGroup()
{
Orientation = DashboardLayoutGroupOrientation.Vertical,
DashboardItem = dashboard.Groups["dashboardItemGroup1"],
Weight = 70
};
// Connect layout items in the layout tree.
groupLayoutItem.ChildNodes.AddRange(dateFilterLayoutItem, chartLayoutItem);
// Create a Grid layout item.
DashboardLayoutItem gridLayoutItem = new DashboardLayoutItem(dashboard.Items["gridDashboardItem1"], 30);
// Create a group layout item to organize the Grid layout item and a Dashboard Group layout item.
DashboardLayoutGroup layoutGroup = new DashboardLayoutGroup(DashboardLayoutGroupOrientation.Horizontal, 85);
// Connect layout items in the layout tree.
layoutGroup.ChildNodes.AddRange(gridLayoutItem, groupLayoutItem);
// Create a RangeFilter layout item.
DashboardLayoutItem rangeFilterLayoutItem = new DashboardLayoutItem(dashboard.Items["rangeFilterDashboardItem1"], 15);
// Create a root layout group. Its DashboardItem property is null.
DashboardLayoutGroup rootGroup = new DashboardLayoutGroup()
{
Orientation = DashboardLayoutGroupOrientation.Vertical,
Weight = 100,
DashboardItem = null
};
// Connect layout items in the layout tree.
rootGroup.ChildNodes.AddRange(layoutGroup, rangeFilterLayoutItem);
// The layout treee is built. Set the dashboard's root layout node to finalize the layout.
dashboard.LayoutRoot = rootGroup;
dashboard.EndUpdate();
dashboardViewer1.Dashboard = dashboard;
Imports System
Imports System.Linq
Imports DevExpress.XtraEditors
Imports DevExpress.DashboardCommon
Imports DevExpress.DashboardWin
'...
Dim dashboard As New Dashboard()
dashboard.LoadFromXml("Data\LayoutUnordered.xml")
dashboard.BeginUpdate()
' Switch off the DateFilter item's AutoHeight arrangement mode so that the DateFilter layout does not ignore its layout weight.
CType(dashboard.Items("dateFilterDashboardItem1"), DateFilterDashboardItem).ArrangementMode = DateFilterArrangementMode.Horizontal
' Hide captions.
dashboard.Items.ForEach(Sub(item) item.ShowCaption = False)
dashboard.Groups.ForEach(Sub(item) item.ShowCaption = False)
' Create layout items for the DateFilter and Chart dashboard items.
Dim dateFilterLayoutItem As New DashboardLayoutItem(dashboard.Items("dateFilterDashboardItem1"), 13)
Dim chartLayoutItem As New DashboardLayoutItem(dashboard.Items("chartDashboardItem1"), 87)
' Create a layout item for the dashboard Group item.
Dim groupLayoutItem As New DashboardLayoutGroup() With {.Orientation = DashboardLayoutGroupOrientation.Vertical, .DashboardItem = dashboard.Groups("dashboardItemGroup1"), .Weight = 70}
' Connect layout items in the layout tree.
groupLayoutItem.ChildNodes.AddRange(dateFilterLayoutItem, chartLayoutItem)
' Create a Grid layout item.
Dim gridLayoutItem As New DashboardLayoutItem(dashboard.Items("gridDashboardItem1"), 30)
' Create a group layout item to organize the Grid layout item and a Dashboard Group layout item.
Dim layoutGroup As New DashboardLayoutGroup(DashboardLayoutGroupOrientation.Horizontal, 85)
' Connect layout items in the layout tree.
layoutGroup.ChildNodes.AddRange(gridLayoutItem, groupLayoutItem)
' Create a RangeFilter layout item.
Dim rangeFilterLayoutItem As New DashboardLayoutItem(dashboard.Items("rangeFilterDashboardItem1"), 15)
' Create a root layout group. Its DashboardItem property is null.
Dim rootGroup As New DashboardLayoutGroup() With {.Orientation = DashboardLayoutGroupOrientation.Vertical, .Weight = 100, .DashboardItem = Nothing}
' Connect layout items in the layout tree.
rootGroup.ChildNodes.AddRange(layoutGroup, rangeFilterLayoutItem)
' The layout treee is built. Set the dashboard's root layout node to finalize the layout.
dashboard.LayoutRoot = rootGroup
dashboard.EndUpdate()