C#WPF如何使用参数以编程方式创建TextBlock

时间:2017-10-15 06:30:04

标签: c# wpf xaml

我正在尝试使用本文中的类GantRowPanel创建GanttChart: GanttChart

在我的MainWindow.xaml中,我有:

<UI:GanttRowPanel x:Name="Gantt" MinDate="09:00" MaxDate="17:00">
        <TextBlock Text="Work" UI:GanttRowPanel.StartDate="09:00" UI:GanttRowPanel.EndDate="12:00"/>
        <TextBlock Text="Lunch" UI:GanttRowPanel.StartDate="12:00" UI:GanttRowPanel.EndDate="13:00"/>
        <TextBlock Text="Work" UI:GanttRowPanel.StartDate="13:00" UI:GanttRowPanel.EndDate="17:00"/>
    </UI:GanttRowPanel>

如何以编程方式添加TextBlock,从CodeBehind到Gantt?

我正在尝试这个:

enter image description here

但它不起作用。

1 个答案:

答案 0 :(得分:0)

我发现问题,DateTime范围不对。如果不设置日期,默认日期将为0001-1-1,其中不包含代码隐藏中的日期范围。因此,您应该在XAML和代码隐藏中保持相同的DateTime样式。

您应该将date添加到XAML中的MinDateMaxDate

<UI:GanttRowPanel x:Name="Gantt" MinDate="2017-10-15 09:00" MaxDate="2017-10-15 17:00">
</UI:GanttRowPanel>

或者,删除代码隐藏中的date

ui.GanttRowPanel.SetStartDate(txBlock, DateTime.Parse("09:00"));
ui.GanttRowPanel.SetEndDate(txBlock, DateTime.Parse("15:00"));