2013-03-13 60 views
2

我需要某種「數據網格」中的某種時間軸,並且該字符具有相當多的幾行。在DataGrid中繪製的快速輕量級方法

https://www.dropbox.com/s/idz0zuk8u3jla11/img.PNG?m

我的DataGrid的左側的作品非常好,因爲只有文字。

右側有一點點滯後。

實際上,我在時間線部分的第一個索引處有我的DataGridTemplateColumn。

我DataGridTemplateColumn使用我的UserControl作爲DataTemplate,其中我畫了我的線/矩形的整個線。這是有效的,因爲我將對象的左邊距設置爲示例500,以便它出現在右邊的其他列上...

usercontrol是一個簡單的網格,我已將動態放置的矩形放置在該網格中。

其他列也是DataGridTemplateColumn,但它們是空的。

現在,我的想法是隻做一個列,我可以放置一個大型的用戶控件,併爲該行繪製時間線。

這樣做的最佳做法是什麼?

謝謝

+0

你好,對於一個稍微偏離主題的問題抱歉,但你如何在DataGrid上繪製所有這些東西?你是在它上面創建一個畫布還是使用OnRender()或其他東西? – szx 2015-02-18 03:13:44

回答

1

我看到你想製作一個時間線,那太棒了。我認爲,也許一個網格不是這樣做的最好的面板。我認爲對於這種情況你應該實現你自己的自定義面板。製作自定義面板非常棒,因爲您可以設置項目的顯示方式,還可以添加動畫或拖動行爲。你可以看到這個網頁:

另外我附上了一些我發現的面板鏈接,看一看,也許你可以找到有用的東西。

編輯


另一件事我忘了,你可以在任何的ItemsControl屬性ItemsPanel設置,這樣你可以使用你的面板與任何項目源,您可以在使用它,例如列表框。

+0

好的謝謝你的回答。 但我會留在datagrid,因爲我不必處理滾動同步。使用兩個控件很難實現,因爲這些行具有不同的高度。 現在我改變了代碼,讓我自己在overritten函數OnRender中畫出每一行。 datagrid包含時間線部分的單個列。 它工作得很好。 再次謝謝 這裏是我的結果: http://s1.directupload.net/images/130315/i5edursc.png – 2013-03-15 08:36:59

+1

雖然可以說是罰款答案在寫作的時候,前兩個環節不再工作。考慮更新它。 – MickyD 2015-09-21 09:05:22

+0

感謝@Roy,已經上傳了! – 2015-09-21 15:02:37