Back to Devexpress

QueryResourceColorSchemaEventArgs Class

corelibraries-devexpress-dot-xtrascheduler-42999ba8.md

latest6.5 KB
Original Source

QueryResourceColorSchemaEventArgs Class

Provides data for the SchedulerControl.QueryResourceColorSchema event.

Namespace : DevExpress.XtraScheduler

Assembly : DevExpress.XtraScheduler.v25.2.Core.Desktop.dll

NuGet Package : DevExpress.Scheduler.CoreDesktop

Declaration

csharp
public class QueryResourceColorSchemaEventArgs :
    EventArgs
vb
Public Class QueryResourceColorSchemaEventArgs
    Inherits EventArgs

QueryResourceColorSchemaEventArgs is the data class for the following events:

Remarks

An instance of the QueryResourceColorSchemaEventArgs class with appropriate settings is automatically created and passed to the corresponding event’s handler.

Example

This example demonstrates how to link a specific SchedulerColorSchema to each visible resource.

Call the SchedulerControl.GetResourceColorSchemasCopy method to obtain a collection of color schemas that are currently available for resource coloring (according to the currently active skin) and handle the SchedulerControl.QueryResourceColorSchema event to associate a specific color schema from the obtained collection to each resource displayed in the scheduler control.

csharp
using DevExpress.XtraScheduler;
using System.Collections.Generic;
// ...

namespace QueryResourceColorSchema {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
            AddResources();

            // Get copies of color schemas that are curremnty used to paint resources.
            PrepareResourceColorSchemas();

            schedulerControl1.LookAndFeel.StyleChanged += new EventHandler(LookAndFeel_StyleChanged);
        }

        void LookAndFeel_StyleChanged(object sender, EventArgs e) {
            // Get copies of color schemas to be used to paint resources
            // after the active skin has been changed.
            PrepareResourceColorSchemas();

            schedulerControl1.ActiveView.LayoutChanged();
        }

        // ...

        Dictionary<object, SchedulerColorSchema> resourceColorSchemas = 
            new Dictionary<object, SchedulerColorSchema>();

        private void PrepareResourceColorSchemas() {
            this.resourceColorSchemas.Clear();
            int count = Resources.Count;
            SchedulerColorSchemaCollection currentColorSchemas = 
                schedulerControl1.GetResourceColorSchemasCopy();
            int schemaCount = currentColorSchemas.Count;
            for (int i = 0; i < count; i++) {
                Resource resource = schedulerControl1.Storage.Resources[i];
                this.resourceColorSchemas.Add(resource.Id, currentColorSchemas[i % schemaCount]);
            }
        }

        private void schedulerControl1_QueryResourceColorSchema(object sender, 
                                                                QueryResourceColorSchemaEventArgs e) {
            object key = e.Resource.Id;
            if (this.resourceColorSchemas.ContainsKey(key))
                e.ResourceColorSchema = this.resourceColorSchemas[key];
        }
    }
}
vb
Imports DevExpress.XtraScheduler
Imports System.Collections.Generic
' ...

Namespace QueryResourceColorSchema
    Partial Public Class Form1
        Inherits Form
        Public Sub New()
            InitializeComponent()
            AddResources()

            ' Get copies of color schemas that are curremnty used to paint resources.
            PrepareResourceColorSchemas()

            AddHandler schedulerControl1.LookAndFeel.StyleChanged, AddressOf LookAndFeel_StyleChanged
        End Sub

        Private Sub LookAndFeel_StyleChanged(ByVal sender As Object, ByVal e As EventArgs)
            ' Get copies of color schemas to be used to paint resources after the active skin has been changed.
            PrepareResourceColorSchemas()

            schedulerControl1.ActiveView.LayoutChanged()
        End Sub

        Private resourceColorSchemas As Dictionary(Of Object, SchedulerColorSchema) = _
                                                    New Dictionary(Of Object, SchedulerColorSchema)()

        ' ...

        Private Sub PrepareResourceColorSchemas()
            Me.resourceColorSchemas.Clear()
            Dim count As Integer = Resources.Count
            Dim currentColorSchemas As SchedulerColorSchemaCollection = _
                                       schedulerControl1.GetResourceColorSchemasCopy()
            Dim schemaCount As Integer = currentColorSchemas.Count
            For i As Integer = 0 To count - 1
                Dim resource As Resource = schedulerControl1.Storage.Resources(i)
                Me.resourceColorSchemas.Add(resource.Id, currentColorSchemas(i Mod schemaCount))
            Next i
        End Sub
        Private Sub schedulerControl1_QueryResourceColorSchema(ByVal sender As Object, _
                            ByVal e As QueryResourceColorSchemaEventArgs) _
                            Handles schedulerControl1.QueryResourceColorSchema
            Dim key As Object = e.Resource.Id
            If Me.resourceColorSchemas.ContainsKey(key) Then
                e.ResourceColorSchema = Me.resourceColorSchemas(key)
            End If
        End Sub
    End Class
End Namespace

Inheritance

Object EventArgs QueryResourceColorSchemaEventArgs

See Also

QueryResourceColorSchemaEventArgs Members

DevExpress.XtraScheduler Namespace