2015-01-01 17 views
13

Tôi muốn có Bộ chọn vòng lặp tùy chỉnh cho Windows Phone 8.1 (WinRT) và tôi không thể tìm thấy giải pháp nào cho thời điểm này. Tôi muốn một cái gì đó như thế này:Windows Phone 8.1 (WinRT): Bộ chọn vòng lặp tùy chỉnh

enter image description here

Các Windows Phone Toolkit là dành cho WP8.0 và WP8.1 Silverlight và nó không làm việc cho WP8.1 (WinRT) ứng dụng (Và this question là dành cho WP8.1 Silverlight).

DatePicker & TimePicker điều khiển cho WP8.1. Có cách nào để tùy chỉnh dữ liệu của họ hoặc điều gì đó để lừa kiểm soát vấn đề của tôi không?

Có lớp học LoopingSelector nhưng có vẻ như chưa được triển khai.

Bất kỳ giải pháp hoặc ý tưởng nào sẽ được đánh giá cao.

+0

được các lớp chọn kín? Nếu không, kế thừa một lớp mới từ chúng và ghi đè lên các phương thức để chúng làm những gì bạn muốn. – magicandre1981

+0

Làm thế nào tôi có thể tìm thấy nếu chúng được niêm phong? Đây là lớp: http://msdn.microsoft.com/library/windows/apps/dn299280. Đó là "** Lớp công khai TimePicker: Kiểm soát **". Vậy tôi có thể kế thừa nó không? –

+0

@ magicandre1981, Nếu bạn có thời gian để tạo ra một ví dụ làm việc từ những gì bạn nói (và trả lời câu hỏi), nó có thể là tuyệt vời cho tất cả mọi người sử dụng. Cảm ơn bạn trước. –

Trả lời

0

tôi đã làm một cái gì đó như thế này cho một "bộ chọn ngày chụp vô hạn" nếu có ý nghĩa :)

Khái niệm cơ bản:

  • tạo ra một mô hình dữ liệu để hiển thị mà có thể cung cấp cho bạn/Trước Tiếp yếu tố
  • có một Canvas như là người chủ kiểm soát của bạn (đó là nhanh)
  • gọi làm Loaded và rerender trên SizeChanged
  • tạo (phụ thuộc) tài sản cho giá trị được lựa chọn
  • đăng ký cho các sự kiện thao tác liên quan (ManipulationDelta, và *Completed) và chọn những gì ManipulationModes bạn muốn cho phép (dịch, có lẽ translateintertia nếu bạn muốn intertia)

Render :

  • làm screensize/elementsize + 2 yếu tố (có thể nhiều hơn)
  • di chuyển chúng vào manipulationdelta và hoàn thành sự kiện
  • nếu một phần tử rời khỏi ranh giới kiểm soát ở một bên, di chuyển phần tử cuối cùng ở phía bên kia sang đầu kia, đồng thời thay đổi dữ liệu được hiển thị (về cơ bản nếu nó là cuối cùng, hơn firstelement.getprevious)
  • manipulationcompleted tìm ra yếu tố gần trung tâm, và animate tất cả mọi thứ đến một 'snap' vị trí
  • và cuối cùng là thiết lập thuộc tính SelectedValue của bạn để dữ liệu của phần tử trung

giải pháp này với hiệu ứng động Canvas.Left thực hiện tốt ngay cả trên RT bề mặt thế hệ thứ nhất. Chúc may mắn!

+0

Cảm ơn câu trả lời. Nhưng bạn có thể plz cung cấp cho tôi một số mã hoặc liên kết đến ví dụ làm việc? Cảm ơn bạn trước. –

+0

Xin lỗi, đây là một dự án làm việc, vì vậy tôi thực sự không thể chia sẻ mã: ( –

+0

Cảm ơn, nhưng tôi không muốn có mã sao chép/dán. Bạn có tạo một dự án mẫu không? sử dụng. –

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