2012-04-27 68 views
5

Tôi đang phát triển một ứng dụng WPF cho một cửa hàng.Phương pháp tiếp cận tốt nhất cho một ứng dụng MDI trong WPF?

Vì vậy, tôi có MainWindow và mọi thứ còn lại sẽ là Child.

Cách tốt nhất để sử dụng làm cửa sổ con.

  1. Window
  2. UserControl

Window sẽ được bình thường, nó sẽ là hàng đầu trên MainWindow và nếu UserControl của nó sẽ được ở một Canvas của một MainWindow.

Vì vậy, bất kỳ ai cũng có thể đề xuất cho tôi cách tốt nhất để sử dụng trong số này là hai.

Trả lời

5

Tôi khuyên bạn nên sử dụng UserControls cho cửa sổ con của bạn. Điều này cho phép bạn thiết lập tất cả các điều khiển "cha mẹ" trên cửa sổ chính của bạn và trẻ em sẽ không ghi đè chúng.

Như một gợi ý khác, tôi khuyên bạn nên xem xét Caliburn Micro. Đó là một khuôn khổ tuyệt vời để xử lý các cửa sổ WPF và các điều khiển người dùng.

Để thêm một usercontrol con đến cửa sổ cha mẹ, tôi thường chỉ cần thêm một ContentControl mẫu chính của tôi như vậy:

<ContentControl x:Name="ViewWindow" Margin="10" /> 

Chỉ cần gán con quý vị để kiểm soát và bạn sẽ ổn thôi.

+0

Làm cách nào để thêm Cửa sổ con (UserControl) vào MainWindow, đang sử dụng Canvas là tốt. Vì tôi phải mở MutWindow ở một thời điểm –

+0

Tôi thường chỉ thêm một ContentControl vào cửa sổ chính. Tôi đã chỉnh sửa bài đăng của mình để cung cấp thêm chi tiết cho bạn. – IAmTimCorey

+0

Có thể ContentControl hỗ trợ nhiều điều khiển con –

1

Giống như nhiều điều trong cuộc sống & mã hóa: nó phụ thuộc :)

  • Window

    • Khi cửa sổ mới có trạng thái riêng của mình & hành vi
    • Khi có ít hoặc không có sự tương tác/nhắn tin giữa cửa sổ chính & cửa sổ bật lên
  • User Control

    • Khi trạng thái của cửa sổ chính cơ bản là rất quan trọng cho hoạt động của các cửa sổ pop-up
    • Khi thay đổi trạng thái cần phải được thông qua giữa 2 cửa sổ

Đây là một số quyết định thiết kế mà bạn quan tâm ...

+0

không hiểu –

4

Tôi đề xuất sử dụng khung MDI như AvalonDo ck: http://avalondock.codeplex.com/ Bạn sẽ tiết kiệm rất nhiều thời gian.

+0

Đây thực sự là một trong những cách tiếp cận tốt nhất cho ứng dụng MDI với WPF vì nó cải thiện nhược điểm của ứng dụng MDI cũ và MVVM cũng có thể thực hiện được với điều này. –

1

Cửa sổ con sẽ tuyệt vời cho ứng dụng dành cho máy tính để bàn khi bạn quyết định sử dụng tương tác giữa cửa sổ mẹ và con, mặc dù cá nhân tôi đề nghị bạn sử dụng khung trong cửa sổ chính và sử dụng nó để lưu trữ nhiều trang.

Để tìm hiểu thêm về duyệt trong WPF và Silverlight bạn có thể truy cập this link

Sử dụng phương pháp này sẽ giúp bạn đạt được những ưu điểm sau:

  1. Lesser cơ hội của rò rỉ bộ nhớ do các event handler tự do.
  2. Thiết kế nhất quán có thể đạt được mà không cần chỉ định kiểu cho cửa sổ con vì bạn có thể đặt nền trang thành trong suốt.
  3. Người dùng sẽ không gặp khó khăn khi xác định cửa sổ nào tập trung khi các chương trình khác được sử dụng đồng thời với phần mềm bạn đang xây dựng.

Tôi cũng nghĩ rằng cũng có nhiều thứ bạn có thể cân nhắc khi xây dựng phần mềm này nhưng cuối cùng bạn vẫn là người quyết định vấn đề này.

Đây chỉ là đề xuất của tôi và hy vọng điều này sẽ giúp :).

1

xem xét để kiểm tra MDIContainer. Một dự án tương tự hơn MDI for WPF, nhưng nó mang lại cho bạn nhiều tự do hơn, vì nó không bắt buộc bạn phải triển khai cửa sổ, giao diện MDIChild hay bất cứ thứ gì.

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