QueryResourceColorSchemaEventArgs Class
Provides data for the SchedulerControl.QueryResourceColorSchema and SchedulerControl.QueryResourceColorSchema events.
Namespace: DevExpress.XtraScheduler
Assembly: DevExpress.XtraScheduler.v24.2.Core.Desktop.dll
Declaration
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.
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];
}
}
}