Custom scale type in Gantt Chart Light Library

How can I define a fully custom scale type, with custom header text items in Gantt Chart Light Library?

You should set the ScaleType and/or HeaderContentFormat properties of the Scale object to Custom, and define its custom scale intervals and/or header text items in code behind (after applying template):

<pdgcc:GanttChartDataGrid.Scales>
    <pdgcc:ScaleCollection>
        <pdgcc:Scale ScaleType="Custom" [...]/>
        <pdgcc:Scale ScaleType="Days" HeaderContentFormat="Custom" [...]/>
    </pdgcc:ScaleCollection>
</pdgcc:GanttChartDataGrid.Scales>

GanttChartDataGrid.ApplyTemplate();
DateTime startDate = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek);
for (DateTime date = startDate.AddDays(-5 * 7); date < startDate.AddDays(20 * 7); date = date.AddDays(7))
    GanttChartDataGrid.Scales[1].Intervals.Add(
        new ScaleInterval(date, date.AddDays(7)) { HeaderContent = date.ToLongDateString() });
foreach (ScaleInterval interval in GanttChartDataGrid.Scales[2].Intervals)
{
    int dayNumber = (int)(interval.TimeInterval.Start.Date - startDate).TotalDays;
    interval.HeaderContent = dayNumber >= 0 ? (dayNumber + 1).ToString() : string.Empty;
}
// Do not allow end users to change the timeline page by using special extra horizontal scrolling buttons.
GanttChartDataGrid.AreUpdateTimelinePageButtonsVisible = false;

Note that if you don't want to set GanttChartDataGrid.AreUpdateTimelinePageButtonsVisible to false and continue to allow end users to extra scroll and change the timeline page manually, you should handle GanttChartDataGrid.TimelinePageChanged event and clear and recompute the Intervals collection of the custom scale item upon such change, partially using the same (optionally, refactored) code as above (they are not recomputed automatically).

See also the Custom Schedule sample application (for Silverlight™ or for WPF), showing, among other features, how to set up the Scales collection of the control.