Dear support,
I have the problem, that I want to set the instantitem height to the actualheight of the timeline.
The problem is that if the instantitem height extends the height of the 'normal' items, my timeline extends it's height -> can see it on the vertical scrollbar.
Is there a way to set the instant item height to the actual height of the timeline?
The reason is that we want to see the instant items even when the user scrolls down.
I have attached an image with the desired behavior.
You can test the the bevavior with that small piece of code:
XAML
Regards,
Wolfgang
I have the problem, that I want to set the instantitem height to the actualheight of the timeline.
The problem is that if the instantitem height extends the height of the 'normal' items, my timeline extends it's height -> can see it on the vertical scrollbar.
Is there a way to set the instant item height to the actual height of the timeline?
The reason is that we want to see the instant items even when the user scrolls down.
I have attached an image with the desired behavior.
You can test the the bevavior with that small piece of code:
XAML
<Window xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" x:Class="WpfApplication1.MainWindow" x:Name="Window" Title="MainWindow"> <Window.Resources> <DataTemplate x:Key="InstantItemTemplate"> <Rectangle Width="7" Height="{Binding ElementName=slider1, Path=Value}" Fill="Red" /> </DataTemplate> <DataTemplate x:Key="ItemWithDurationTemplate"> <Rectangle Margin="0, 0, 0, 5" Height="20" VerticalAlignment="Center" Fill="Green"/> </DataTemplate> </Window.Resources> <DockPanel LastChildFill="True"> <StackPanel DockPanel.Dock="Top"> <StackPanel Orientation="Horizontal"> <Slider Minimum="1" Maximum="1500" Value="{Binding ElementName=sliderTextBox, Path=Text, Mode=TwoWay}" TickFrequency="1" Name="slider1" Width="600" /> <TextBox Name="sliderTextBox" Text="{Binding ElementName=slider1, Path=Value}" /> </StackPanel> <TextBlock Text="{Binding ElementName=slider1, Path=Value}" FontSize="20" FontWeight="Bold" Height="25" HorizontalAlignment="Center" /> </StackPanel> <telerik:RadTimeline x:Name="timeline" Margin="6" VerticalAlignment="Top" PeriodStart="2011/01/01" PeriodEnd="2011/06/01" VisiblePeriodStart="2011/01/01" VisiblePeriodEnd="2011/03/22" StartPath="Date" DurationPath="Duration" VerticalScrollBarVisibility="Auto" TimelineItemTemplate="{StaticResource ItemWithDurationTemplate}" TimelineInstantItemTemplate="{StaticResource InstantItemTemplate}"> <telerik:RadTimeline.Intervals> <telerik:DayInterval /> <telerik:WeekInterval /> <telerik:MonthInterval /> <telerik:YearInterval /> </telerik:RadTimeline.Intervals> </telerik:RadTimeline> </DockPanel></Window>
CS
using System;
using System.Collections.Generic;
using System.Windows;
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private List<Item> dataSource;
private DateTime startDate;
public MainWindow()
{
InitializeComponent();
dataSource = new List<Item>();
startDate = new DateTime(2011, 1, 1);
var endDate = new DateTime(2011, 6, 1);
Random r = new Random();
for (DateTime i = startDate; i < endDate; i = i.AddMonths(1))
{
for (int j = 0; j < 20; j++)
dataSource.Add(new Item() { Date = i, Duration = TimeSpan.FromDays(r.Next(50, 100)) });
}
dataSource.Add(new Item() { Date = startDate.AddMonths(3).AddDays(15) });
timeline.ItemsSource = dataSource;
timeline.VisiblePeriodStart = startDate.AddDays(20);
timeline.VisiblePeriodEnd = endDate.AddDays(-20);
}
}
public class Item
{
public TimeSpan Duration { get; set; }
public DateTime Date { get; set; }
}
}
Regards,
Wolfgang