Là dự án WPF đầu tiên của tôi, tôi đang cố gắng xây dựng một ứng dụng để chơi trò chơi bài tương tự như Magic the Gathering. Nó không phải là rõ ràng với tôi làm thế nào để lay ra khu vực chơi chính. Bạn có thể xem một số ví dụ tương tự với những gì tôi đang cố gắng bằng cách xem example 1 hoặc example 2. Các khu vực trò chuyện/thông tin ở bên phải sẽ là các điều khiển người dùng riêng biệt.Bố trí WPF cho trò chơi bài phức tạp
Thẻ phải duy trì tỷ lệ khung hình của chúng và mỗi khu vực phát sẽ bắt đầu bằng 10 cột và hai hàng thẻ. Khi có nhiều thẻ hơn, số cột và/hoặc hàng có thể thay đổi. Mỗi khu vực người chơi có thể có một số cột và/hoặc hàng khác nhau. Thẻ có thể chồng lên nhau và có thể được đặt ngang (khai thác). Thẻ ở tất cả các khu vực phải có cùng kích thước (mặc dù chúng có thể bị cắt ở một số khu vực). Thẻ không cần phải nằm chính xác trên lưới (chúng không nhất thiết phải chụp vào lưới).
Khi người dùng di chuột qua thẻ, thẻ sẽ mở rộng thành kích thước lớn hơn đáng kể bằng cách sử dụng hoạt ảnh. Một thẻ trong một khu vực người chơi có thể tràn vào khu vực của người chơi khác khi được mở rộng (nhưng chỉ miễn là con chuột di chuyển).
Với những yêu cầu này, tôi bị cám dỗ sử dụng một điều khiển người dùng lớn có nguồn gốc từ Canvas với các đối tượng hình ảnh cho mỗi thẻ (cùng với các hình khác để phân định các khu vực). Điều này ngụ ý rằng tôi sẽ làm rất nhiều công việc trong sự kiện OnRenderSizeChanged để định vị các mục con trong canvas (bố cục thủ công).
Việc sử dụng lưới điện dường như không khả thi đối với tôi, do vị trí dạng tự do và trùng lặp.
Phân chia khu vực phát thành điều khiển người dùng nhỏ hơn sẽ tận dụng khả năng bố trí WPF, nhưng có vẻ như quá trình phân tách sẽ ngăn các thẻ mở rộng vào các điều khiển người dùng liền kề trong khi di chuột qua, điều đó dường như không khả thi.
Có cách nào thay thế tốt hơn cho một kiểm soát dựa trên canvas lớn không? Có vẻ như sai khi thực hiện bố cục thủ công trong WPF, nhưng tôi không thể thấy một giải pháp thay thế.
Cảm ơn bạn đã liên kết, nhưng giả mạo được viết bằng java và tập trung hơn vào việc có AI để chơi trò chơi (một vấn đề khó khăn hơn nhiều). Mục tiêu của tôi là cho phép hai người chơi qua kết nối internet. Có một dự án dựa trên WPF tương tự (http://moxdev.wordpress.com/) là nơi mà ý tưởng mở rộng thẻ xuất phát từ đó. Anh ấy cũng đang sử dụng một bức tranh (tôi tin), nhưng nó vẫn có vẻ hơi sai khi lạm dụng một bức tranh theo cách đó. – Doug