2011-03-25 39 views
0

我想製作一個控件,它具有類似於MS Outlook月視圖日曆的功能。事實上,我確實設法完成了整個控制,但是我碰到了一個問題,現在我陷入困境。以下是我如何實現它:WPF:跨多個ItemsControl展開收集項目(MS Outlook月視圖)

我已經創建了一個垂直方向的容器ItemsCollection MonthView。該容器包含水平定向的集合ItemsCollection WeekView - 這些控件中的每一個代表日曆中的一行周行。每個WeekView包含一組ItemsCollection DayView控件,它是垂直定向的容器,用於存儲約會。下面是說明了這所有的圖片:

Layout of calendar month view

每個DayView集合綁定到List<Appointment> Appointments列表,並有一個過濾器只顯示那些被安排在那一天的約會。它看起來都很膨脹,但這裏有一個問題:如果Appointment appointment計劃超過一天(多天的活動),同一個條目在多個DayView容器中可見,這是合乎邏輯的。

如果計劃超過一天,我希望有一個預約控制分佈在多個DayView之間。我不知道如何實現這一點。任何人都可以讓我知道我的設計中需要更改哪些內容以及如何爲Appointment定義模板以支持此要求?謝謝。

回答

0

這有點棘手,因爲您已經創建了多少。目前我無法對此進行測試,但您可以使用WPF提供的Transformclass implementations (link to ScaleTransform)之一,並將其​​應用於演示文稿的RenderTransform階段。使用這種技術,您可以在兩個DayView控件之間繪製一個約會,而不必更改太多。

這是一個link to an article演示技術。

請注意,這會導致您需要處理的其他問題,其中最有可能發生的情況是您的預約時間跨度爲2天,第二天約會一天。這種技術會導致它們重疊。