Tôi đang làm việc trên một điều khiển cho một trong các ứng dụng của chúng tôi. Bộ điều khiển hiển thị ngày hiện đang được tập trung làm hình gird, trục X là thời gian trong ngày. Trục Y không có tỷ lệ như vậy, thay vào đó nó sẽ tách ra các mục sẽ được hiển thị. Giao diện tổng thể của điều khiển sẽ khá giống với biểu đồ gantt, hiển thị thời gian trong ngày của các tác vụ khác nhau. Đối với một ý tưởng (rất thô), xem nghệ thuật ascii (không) bên dưới.Hướng dẫn thiết kế điều khiển WPF - dòng thời gian
8 9 10 11 12 1 2 3 4 5 6
-----------------------------------------------------------------------------
| | | | | | | | | | |
| ====================== | | | | | |
| | | ====================== | | | |
| | | | | | | ======== | |
| | | | ===========================================
| | | | | | | | | | |
Tôi có lưới nền hoạt động sao cho có thể thay đổi kích thước và có chỉ báo "thời gian hiện tại" được thực hiện dưới dạng đường thẳng đứng màu xanh lam để cho biết vị trí của chúng tôi. Khi điều khiển được thay đổi kích thước, vị trí của chỉ báo thời gian hiện tại được tính toán lại để đảm bảo nó hiển thị đúng thời điểm.
Điều tôi bây giờ không chắc chắn là cách triển khai các thanh ngang đại diện cho các mục tác vụ. Tôi có một thực thể nhiệm vụ với thời gian bắt đầu, thời gian kết thúc, tên và mô tả và tôi muốn kiểm soát chứa một tập hợp các thực thể này. Tôi cũng muốn những thực thể này thúc đẩy việc hiển thị.
Việc tiếp xúc với WPF của tôi khá hạn chế, nhưng trong quá khứ, những nỗ lực của tôi trong việc hình dung một tập hợp các đối tượng có liên quan đến việc sử dụng hộp danh sách và bảng dữ liệu. Nó sẽ là tuyệt vời nếu nó có thể ràng buộc một bộ sưu tập vào một bảng xếp chồng hoặc một cái gì đó tương tự vì vậy tôi có thể có cách nhẹ nhàng như thế này. (Tôi mặc dù StackPabnel vì nó sẽ xử lý sắp xếp thẳng đứng đối với tôi)
<UserControl declarations here... >
<UserControl.Resources>
<ObjectDataProvider x:Key="myCollection" />
</UserControl.Resources>
<Grid Name="myBackgroundGrid" Margin="0,0,0,0" ... >stuff goes here to draw the background</Grid>
<StackPanel ItemsSource="{Binding Source={StaticResource myCollection}}" />
</UserControl>
bất cứ ai có thể cho tôi biết nếu những gì tôi nghĩ đây thậm chí còn có thể, và (hy vọng) cho tôi một số hướng dẫn như thế nào để đạt được những gì tôi muốn làm.
Xin cảm ơn trước.
--EDIT--
"Điều khiển" hiển thị từng tác vụ không phải phức tạp hơn một dòng có thời gian bắt đầu và kết thúc và chú giải công cụ của tên tác vụ. Trong thời gian này, tôi không cần phải có thể đi sâu vào các công việc, mặc dù điều này có thể xảy ra sau.
Câu trả lời hay. Cảm ơn vì điều đó. Một chút tìm kiếm và tôi làm thế nào để thiết lập IValueConverter trong xaml bằng trong phần control.Resources của tôi. –
ZombieSheep