2010-02-14 24 views
9

tôi cần phải xây dựng một điều khiển WPF trông bằng cách nào đó tương tự như sau: alt text http://img251.imageshack.us/img251/6857/circle.pngBạn sẽ đề xuất gì để xây dựng một điều khiển như vậy trong WPF?

đâu mỗi màu sẽ có thể nhấp và thay đổi kích thước (hoặc có thể lựa chọn).

kiểm soát này sẽ được sử dụng để thiết lập các chế độ trên giờ một ngày. Tôi đã nghĩ về việc 24 nút đó sẽ được sắp xếp theo một vòng tròn:

alt text http://img684.imageshack.us/img684/2184/buttonsk.png

Một ý tưởng khác là để vẽ một vòng tròn hoàn chỉnh và tính toán vị trí người sử dụng click chuột cho việc lựa chọn và vẽ một vài vòng tròn để đại diện cho dữ liệu.

Bất kỳ khác/ý tưởng tốt hơn về cách xây dựng này? (xin vui lòng tha thứ cho bản vẽ kém của tôi).

+0

"thay đổi kích thước" - bởi người dùng trong thời gian chạy, hoặc chỉ trong mã? – Schneider

+0

Có thể chọn như thế nào? bạn có ý gì bằng cách bấm tab, hoặc bấm? Nếu nhấp vào bạn có muốn chọn hành vi chọn/nhấp giống như một nút không? – Schneider

+0

Có thể thay đổi kích thước và có thể chọn - ý tôi là để người dùng đánh dấu giờ trong ngày với các màu khác nhau. –

Trả lời

2

Có vẻ như bạn muốn có một ListBox tùy chỉnh (nhiều mục có thể lựa chọn/nhấp chuột được). Đối với bố trí, bạn sẽ muốn sử dụng một số loại RadialPanel như ItemsPanel. Bạn cũng có thể cần phải thay đổi ItemContainerStyle để làm cho ListBoxItems của bạn trông giống như những gì bạn có ở trên, có lẽ với một số kích hoạt để thay đổi màu sắc dựa trên trạng thái lựa chọn. Tùy thuộc vào hành vi bạn cần từ các mục của bạn, bạn có thể cần phải tạo tùy chỉnh ListBox/ListBoxItem dẫn xuất tùy chỉnh điều khiển nhưng trong rất nhiều trường hợp được xây dựng trong hành vi sẽ giúp bạn có được một chặng đường dài. Để sử dụng lại nó như một đơn vị duy nhất, bạn có thể gói ListBox với các mục 24 giờ và các mẫu tùy chỉnh trong UserControl và trưng ra dữ liệu lựa chọn dưới bất kỳ hình thức nào bạn cần làm Thuộc tính phụ thuộc (như IEnumerable của các mục dữ liệu đại diện cho giờ đã chọn).

Có sự giúp đỡ mà bạn bắt đầu?

4

Tôi nghĩ bạn sẽ nhận được các hiệu ứng cạnh lẻ với nhiều điều khiển chồng chéo hoặc chạm. Vì vậy, tôi sẽ làm cho một điều khiển tùy chỉnh duy nhất để làm điều này. Nó sẽ chuyển đổi vị trí chuột trên nút xuống một lát, và sau đó thực hiện hành động thích hợp.

Với một điều khiển duy nhất, bạn cũng có thể tìm ra một cách hợp lý để đối phó với đầu vào bàn phím và cho thấy lựa chọn và cho phép hành vi chọn nhiều.

Các vấn đề liên quan