RadiantQ Forum
Product => WPF Gantt Package => Topic started by: michael.fried on November 24, 2014, 03:40:14 PM
-
Hi,
Quick question this time :)
Is it possible to add horizontal lines in the Gantt Area dividing each team like in the in the following example:
(http://i.imgur.com/L8EhzCv.png?1)
Kind regards,
Michael
-
Michael,
You can setup borders like this:
// First listen to GanttControl's TemplateApplied event:
void ganttControl_TemplateApplied(object sender, EventArgs e)
{
this.ganttControl.GanttChart.LoadingRow += GanttChart_LoadingRow;
}
void GanttChart_LoadingRow(object sender, GanttChartRowEventArgs e)
{
GanttTaskItemBar bar = e.Row as GanttTaskItemBar;
// Wait till it's loaded:
bar.Loaded += bar_Loaded;
}
// Insert a Border to render a bottom border for each row.
void bar_Loaded(object sender, RoutedEventArgs e)
{
GanttTaskItemBar bar = sender as GanttTaskItemBar;
Canvas topCanvas = Extensions.GetChild<Canvas>(bar, true);
Border rowBorder = new Border();
rowBorder.BorderThickness = new Thickness(0, 0, 0, 1);
rowBorder.BorderBrush = new SolidColorBrush(Colors.LightGray);
Canvas.SetZIndex(rowBorder, -3);
Binding binding = new Binding("ViewWidth");
binding.Source = bar;
rowBorder.SetBinding(WidthProperty, binding);
binding = new Binding("Height");
binding.Source = bar;
rowBorder.SetBinding(HeightProperty, binding);
topCanvas.Children.Add(rowBorder);
}
Thanks
Support
-
Michael,
Our previous update is actually for our GanttControl. In fact, we made it a bit easier to do add borders with a different API like this (this API will be in our next version):
// Listen to ganttControl TemplateApplied event.
void ganttControl_TemplateApplied(object sender, EventArgs e)
{
this.ganttControl.GanttChart.LoadingRow += GanttChart_LoadingRow;
}
void GanttChart_LoadingRow(object sender, GanttChartRowEventArgs e)
{
GanttTaskItemBar bar = e.Row as GanttTaskItemBar;
bar.AddBottomBorder(1, Colors.LightGray);
}
And for FlexyGantt, you can do something similar like this:
// Listen to FlexyGantt's TemplateApplied event.
void fxgantt_TemplateApplied(object sender, EventArgs e)
{
this.fxgantt.GanttChart.LoadingRow += GanttChart_LoadingRow;
}
void GanttChart_LoadingRow(object sender, GanttChartRowEventArgs e)
{
TasksListControl row = e.Row as TasksListControl;
row.AddBottomBorder(1, Colors.LightGray);
}
We will send you the updated assembly by email.
Thanks
RadiantQ Support
-
Works nicely ;D
Many thanks,
Michael