我正在尝试创建一个具有类似于MS Outlook月视图日历功能的控件。事实上,我确实设法完成了整个控制,但我碰到了一个问题,现在我陷入困境。这是我实现它的方式:
我创建了一个垂直定向的ItemsCollection MonthView
容器。该容器包含一个水平方向ItemsCollection WeekView
的集合 - 每个控件代表日历中的一个周行。每个WeekView
都包含一组ItemsCollection DayView
控件,这些控件是垂直方向的容器,用于存储约会。这是一张说明这一切的图片:
每个DayView
集合都绑定到List<Appointment> Appointments
列表,并且有一个过滤器,仅显示为该特定日期安排的约会。这一切看起来都很膨胀,但这里有一个问题:如果Appointment appointment
被安排超过一天(多天活动),则在多个DayView
容器中可以看到相同的条目,这是合乎逻辑的。
如果预定超过一天,我希望有一个约会控制权在多个DayView
之间传播。我不知道如何实现这一点。有谁可以让我知道我需要在设计中更改什么以及如何为Appointment
定义模板以支持此要求?谢谢。
答案 0 :(得分:0)
考虑到你已经创造了多少,这有点棘手。我目前无法对此进行测试,但您可以使用WPF提供的Transform
class implementations (link to ScaleTransform)之一并将其应用于演示文稿的RenderTransform
阶段。使用这种技术,您可以将其中一个约会绘制在两个DayView控件之上,而不必进行太多更改。
这是展示该技术的link to an article。
请注意,这将导致您必须处理的其他问题,最有可能的情况是您的约会时间跨度为2天,而第二天的约会时间为一天。这种技术会导致它们重叠。