Log In
Home
Support
Demos
Documentation
Blogs
Training
Webinars
[Expand]General Information
[Collapse]WinForms Controls
  Prerequisites
 [Expand]What's Installed
 [Expand]Build an Application
 [Expand]Controls and Libraries
 [Expand]Common Features
  Get More Help
 [Collapse]API Reference
  [Expand]DevExpress.DataAccess.UI.Design
  [Expand]DevExpress.DataAccess.UI.EntityFramework
  [Expand]DevExpress.DataAccess.UI.Excel
  [Expand]DevExpress.DataAccess.UI.Localization
  [Expand]DevExpress.DataAccess.UI.ObjectBinding
  [Expand]DevExpress.DataAccess.UI.Sql
  [Expand]DevExpress.DataAccess.UI.Wizard
  [Expand]DevExpress.DataAccess.UI.Wizard.Services
  [Expand]DevExpress.DataAccess.UI.Wizard.Views
  [Expand]DevExpress.DocumentView
  [Expand]DevExpress.DocumentView.Controls
  [Expand]DevExpress.LookAndFeel
  [Expand]DevExpress.LookAndFeel.Helpers
  [Expand]DevExpress.Skins
  [Expand]DevExpress.Snap
  [Expand]DevExpress.Snap.API.Native
  [Expand]DevExpress.Snap.Core
  [Expand]DevExpress.Snap.Core.API
  [Expand]DevExpress.Snap.Core.Fields
  [Expand]DevExpress.Snap.Core.Forms
  [Expand]DevExpress.Snap.Core.Options
  [Expand]DevExpress.Snap.Core.Services
  [Expand]DevExpress.Snap.Extensions
  [Expand]DevExpress.Snap.Extensions.Localization
  [Expand]DevExpress.Snap.Extensions.UI
  [Expand]DevExpress.Snap.Localization
  [Expand]DevExpress.Snap.Options
  [Expand]DevExpress.Snap.Services
  [Expand]DevExpress.Utils
  [Expand]DevExpress.Utils.Animation
  [Expand]DevExpress.Utils.Controls
  [Expand]DevExpress.Utils.Drawing
  [Expand]DevExpress.Utils.Menu
  [Expand]DevExpress.Utils.Taskbar
  [Expand]DevExpress.Utils.Taskbar.Core
  [Expand]DevExpress.Utils.UI.Localization
  [Expand]DevExpress.Utils.VisualEffects
  [Expand]DevExpress.Utils.Win
  [Expand]DevExpress.XtraBars
  [Expand]DevExpress.XtraBars.Alerter
  [Expand]DevExpress.XtraBars.Docking
  [Expand]DevExpress.XtraBars.Docking2010
  [Expand]DevExpress.XtraBars.Docking2010.Customization
  [Expand]DevExpress.XtraBars.Docking2010.Views
  [Expand]DevExpress.XtraBars.Docking2010.Views.NativeMdi
  [Expand]DevExpress.XtraBars.Docking2010.Views.Tabbed
  [Expand]DevExpress.XtraBars.Docking2010.Views.Widget
  [Expand]DevExpress.XtraBars.Docking2010.Views.WindowsUI
  [Expand]DevExpress.XtraBars.Localization
  [Expand]DevExpress.XtraBars.Navigation
  [Expand]DevExpress.XtraBars.Ribbon
  [Expand]DevExpress.XtraBars.Ribbon.Gallery
  [Expand]DevExpress.XtraBars.Ribbon.ViewInfo
  [Expand]DevExpress.XtraBars.ToastNotifications
  [Expand]DevExpress.XtraBars.Utils
  [Expand]DevExpress.XtraBars.WinRTLiveTiles
  [Expand]DevExpress.XtraCharts
  [Expand]DevExpress.XtraCharts.Designer
  [Expand]DevExpress.XtraCharts.Wizard
  [Expand]DevExpress.XtraDataLayout
  [Expand]DevExpress.XtraDiagram
  [Expand]DevExpress.XtraDiagram.Options
  [Expand]DevExpress.XtraEditors
  [Expand]DevExpress.XtraEditors.ButtonPanel
  [Expand]DevExpress.XtraEditors.Calendar
  [Expand]DevExpress.XtraEditors.Camera
  [Expand]DevExpress.XtraEditors.Container
  [Expand]DevExpress.XtraEditors.Controls
  [Expand]DevExpress.XtraEditors.CustomEditor
  [Expand]DevExpress.XtraEditors.DXErrorProvider
  [Expand]DevExpress.XtraEditors.Filtering
  [Expand]DevExpress.XtraEditors.Mask
  [Expand]DevExpress.XtraEditors.Persistent
  [Expand]DevExpress.XtraEditors.Repository
  [Expand]DevExpress.XtraEditors.ViewInfo
  [Expand]DevExpress.XtraFilterEditor
  [Expand]DevExpress.XtraGauges.Presets.Styles
  [Expand]DevExpress.XtraGauges.Win
  [Expand]DevExpress.XtraGauges.Win.Base
  [Expand]DevExpress.XtraGauges.Win.Gauges.Circular
  [Expand]DevExpress.XtraGauges.Win.Gauges.Digital
  [Expand]DevExpress.XtraGauges.Win.Gauges.Linear
  [Expand]DevExpress.XtraGauges.Win.Gauges.State
  [Expand]DevExpress.XtraGrid
  [Expand]DevExpress.XtraGrid.Columns
  [Expand]DevExpress.XtraGrid.EditForm
  [Expand]DevExpress.XtraGrid.FilterEditor
  [Expand]DevExpress.XtraGrid.Localization
  [Expand]DevExpress.XtraGrid.Views.BandedGrid
  [Expand]DevExpress.XtraGrid.Views.BandedGrid.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Base
  [Expand]DevExpress.XtraGrid.Views.Base.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Card
  [Expand]DevExpress.XtraGrid.Views.Card.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Grid
  [Expand]DevExpress.XtraGrid.Views.Grid.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Layout
  [Expand]DevExpress.XtraGrid.Views.Layout.Events
  [Expand]DevExpress.XtraGrid.Views.Layout.ViewInfo
  [Expand]DevExpress.XtraGrid.Views.Printing
  [Expand]DevExpress.XtraGrid.Views.Tile
  [Expand]DevExpress.XtraGrid.Views.WinExplorer
  [Expand]DevExpress.XtraGrid.WinExplorer
  [Collapse]DevExpress.XtraLayout
    AutoAlignMode Enumeration
    AutoSizeModes Enumeration
   [Expand]BaseLayoutItem Class
   [Expand]BaseLayoutItemCustomizationOptions Class
   [Expand]BaseLayoutItemOptionsToolTip Class
   [Expand]ColumnDefinition Class
   [Expand]ColumnDefinitions Class
    ControlMaxSizeCalcMode Enumeration
    CustomizationModes Enumeration
   [Expand]EmptySpaceItem Class
   [Expand]LayoutAppearanceCollection Class
   [Collapse]LayoutControl Class
     LayoutControl Members
    [Expand]LayoutControl Constructor
    [Expand]LayoutControl Properties
    [Collapse]LayoutControl Events
      BeforeLoadLayout Event
      Changed Event
      Changing Event
      CustomDraw Event
      DefaultLayoutLoaded Event
      DefaultLayoutLoading Event
      GroupExpandChanged Event
      GroupExpandChanging Event
      HideCustomization Event
      ItemAdded Event
      ItemDragging Event
      ItemRemoved Event
      ItemSelectionChanged Event
      LayoutTreeViewPopupMenuShowing Event
      LayoutUpdate Event
      LayoutUpgrade Event
      PopupMenuShowing Event
      RequestUniqueName Event
      ShowContextMenu Event
      ShowCustomization Event
      ShowLayoutTreeViewContextMenu Event
      TabPageCloseButtonClick Event
      UniqueNameRequest Event
    [Expand]LayoutControl Methods
   [Expand]LayoutControlGroup Class
   [Expand]LayoutControlItem Class
   [Expand]LayoutGroup Class
   [Expand]LayoutItem Class
   [Expand]LayoutItemContainer Class
   [Expand]LayoutMenuEventArgs Class
    LayoutMenuEventHandler Delegate
   [Expand]LayoutRepositoryItem Class
   [Expand]LayoutSerializationOptions Class
    MoveFocusDirection Enumeration
   [Expand]OptionsCustomizationForm Class
   [Expand]OptionsFocus Class
   [Expand]OptionsItemText Class
   [Expand]OptionsItemTextGroup Class
   [Expand]OptionsPrintBase Class
   [Expand]OptionsPrintControl Class
   [Expand]OptionsPrintGroup Class
   [Expand]OptionsPrintItem Class
   [Expand]OptionsTableLayoutGroup Class
   [Expand]OptionsTableLayoutItem Class
   [Expand]OptionsView Class
   [Expand]PopupMenuShowingEventArgs Class
   [Expand]RowDefinition Class
   [Expand]RowDefinitions Class
    SizeConstraintsType Enumeration
   [Expand]SplitterItem Class
    SplitterItemFixedStyles Enumeration
    SplitterItemResizeMode Enumeration
   [Expand]TabbedControlGroup Class
   [Expand]TabbedGroup Class
    TextAlignMode Enumeration
    TextAlignModeGroup Enumeration
    TextAlignModeItem Enumeration
  [Expand]DevExpress.XtraLayout.Customization
  [Expand]DevExpress.XtraLayout.HitInfo
  [Expand]DevExpress.XtraLayout.Localization
  [Expand]DevExpress.XtraLayout.Utils
  [Expand]DevExpress.XtraMap
  [Expand]DevExpress.XtraMap.Printing
  [Expand]DevExpress.XtraNavBar
  [Expand]DevExpress.XtraNavBar.ViewInfo
  [Expand]DevExpress.XtraPdfViewer
  [Expand]DevExpress.XtraPdfViewer.Commands
  [Expand]DevExpress.XtraPdfViewer.Localization
  [Expand]DevExpress.XtraPivotGrid
  [Expand]DevExpress.XtraPivotGrid.Data
  [Expand]DevExpress.XtraPrinting
  [Expand]DevExpress.XtraPrinting.Control
  [Expand]DevExpress.XtraPrinting.Preview
  [Expand]DevExpress.XtraPrintingLinks
  [Expand]DevExpress.XtraReports.UI
  [Expand]DevExpress.XtraRichEdit
  [Expand]DevExpress.XtraRichEdit.Commands
  [Expand]DevExpress.XtraRichEdit.Export
  [Expand]DevExpress.XtraRichEdit.Import
  [Expand]DevExpress.XtraRichEdit.Localization
  [Expand]DevExpress.XtraRichEdit.Menu
  [Expand]DevExpress.XtraScheduler
  [Expand]DevExpress.XtraScheduler.Drawing
  [Expand]DevExpress.XtraScheduler.Printing
  [Expand]DevExpress.XtraScheduler.Reporting
  [Expand]DevExpress.XtraScheduler.Reporting.UI
  [Expand]DevExpress.XtraScheduler.Services
  [Expand]DevExpress.XtraScheduler.Services.Implementation
  [Expand]DevExpress.XtraScheduler.UI
  [Expand]DevExpress.XtraSpellChecker
  [Expand]DevExpress.XtraSpellChecker.Localization
  [Expand]DevExpress.XtraSplashForm
  [Expand]DevExpress.XtraSplashScreen
  [Expand]DevExpress.XtraSpreadsheet
  [Expand]DevExpress.XtraSpreadsheet.Services
  [Expand]DevExpress.XtraTab
  [Expand]DevExpress.XtraTab.Buttons
  [Expand]DevExpress.XtraTab.ViewInfo
  [Expand]DevExpress.XtraTabbedMdi
  [Expand]DevExpress.XtraToolbox
  [Expand]DevExpress.XtraTreeList
  [Expand]DevExpress.XtraTreeList.Columns
  [Expand]DevExpress.XtraTreeList.Data
  [Expand]DevExpress.XtraTreeList.Localization
  [Expand]DevExpress.XtraTreeList.Menu
  [Expand]DevExpress.XtraTreeList.Nodes
  [Expand]DevExpress.XtraTreeList.Nodes.Operations
  [Expand]DevExpress.XtraTreeList.StyleFormatConditions
  [Expand]DevExpress.XtraTreeMap
  [Expand]DevExpress.XtraVerticalGrid
  [Expand]DevExpress.XtraVerticalGrid.Events
  [Expand]DevExpress.XtraVerticalGrid.Localization
  [Expand]DevExpress.XtraVerticalGrid.Rows
  [Expand]DevExpress.XtraWaitForm
  [Expand]DevExpress.XtraWizard
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Document Server
[Expand]Reporting
[Expand]Report Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation

LayoutControl.CustomDraw Event

Allows you to custom paint individual items in the LayoutControl.

Namespace:DevExpress.XtraLayout
Assembly:DevExpress.XtraLayout.v17.2.dll

Expanded Syntax

Expanded Event Data

The event handler receives an argument of type DevExpress.XtraLayout.ItemCustomDrawEventArgs containing data related to this event.

Expanded Remarks

To custom paint a certain item, you can handle the LayoutControl.CustomDraw or BaseLayoutItem.CustomDraw event. The LayoutControl.CustomDraw event fires repeatedly for each layout item within the LayoutControl, while the BaseLayoutItem.CustomDraw event only fires for the source layout item. LayoutGroups allow you to custom paint their captions and backgrounds separately using the dedicated LayoutGroup.CustomDrawCaption and LayoutGroup.CustomDrawBackground events. The LayoutControl.CustomDraw and BaseLayoutItem.CustomDraw events also fire for LayoutGroups (LayoutGroups are BaseLayoutItem descendants). While handling the CustomDraw events for LayoutGroups, you can use the event arguments to identify the text and client area bounds and paint these areas manually.

Custom draw events allow you to:

  • Paint an item manually.
  • Invoke the default painting mechanism for an item (during or after event execution).
  • Change the item's paint information and then invoke the default painting mechanism.
The Layout Control's custom draw events provide the DefaultDraw method (accessible from the event arguments), which allows you to invoke the default painting mechanism for the currently processed item during event execution. There is also another implicit way to invoke the default painting mechanism. If the event's Handled parameter is set to false (the default value), the default painting mechanism will automatically be invoked after your custom draw event handler is completed. Note that the default painting mechanism overrides all rendering you may have performed previously. The DefaultDraw method automatically sets the Handled parameter to true, to prevent the default painting mechanism from being invoked again after event execution. However, if you paint an element manually and do not use the DefaultDraw method, you should manually set the Handled parameter to true.

To custom paint items, use the methods provided by the event's Graphics parameter. To retrieve various paint information (including the item's bounds) use the event's ViewInfo parameter (in certain custom draw events, this information is accessible from the Info parameter.

Expanded Example

The following example handles the CustomDraw event to custom paint an item's background, draw a custom image for another item, and change the text color for a third item. The DefaultDraw method is called to perform the default item painting. The Handled parameter set to true ensures that no default painting is invoked after your CustomDraw event handler is executed.

For the third item, the text color is changed to red. Note that this item is not manually painted in the CustomDraw event handler. The Handled parameter is set to false to paint the item using the default painting mechanism after your CustomDraw event handler is performed.

Expanded See Also

How would you rate this topic?​​​​​​​