2010-01-27 45 views
9

Tất cả trong WPF:Phát triển giao diện người dùng giao diện người dùng - WPF

Phát triển một ứng dụng thuật sĩ, người dùng phải trả lời một số câu hỏi đơn giản trước khi đưa đến ứng dụng chính. Ứng dụng chính sau đó được điền sẵn thông tin thu được từ trình hướng dẫn.

Tôi bắt đầu với Cửa sổ mà sau đó tôi đã lên kế hoạch thêm các liên kết người dùng vào. Cửa sổ chính sẽ có điều khiển người dùng trong hàng đầu tiên, sau đó là nút Tiếp theo và Trước để điều khiển di chuyển giữa các điều khiển trong hàng thứ hai. Bằng cách này, tôi có thể dễ dàng kiểm soát logic để chuyển đổi giữa các màn hình như:

WizardControl1.IsVisible = false; 
WizardControl2.IsVisible = true; 

Nhưng đối với một số lý do, điều khiển người dùng không có setter cho IsVisible. Tiếng hoan hô.

Vì vậy, sau đó tôi nghĩ tôi sẽ chỉ sử dụng các cửa sổ riêng biệt cho từng phần của trình hướng dẫn. Vấn đề với cách tiếp cận này là bây giờ khi bước giữa, cửa sổ mở ra ở vị trí ngẫu nhiên, và bằng cách bước qua trình hướng dẫn tiếp theo, cửa sổ tiếp theo bật lên một cách ngẫu nhiên mà thực sự làm sao lãng và bực bội.

Vậy làm cách nào để tôi có thể phát triển trình hướng dẫn đúng cách? Tôi không hiểu tại sao điều này quá khó ... không phải là khoa học tên lửa ... thay thế văn bản và điều khiển và lưu trữ dữ liệu vào sau khi nhấn tiếp theo/trước đó!

Cảm ơn

Trả lời

3

Tôi có thể sẽ sử dụng tính năng này bằng cách sử dụng trình kết nối dữ liệu và chọn mẫu. Có biểu mẫu thuật sĩ liên kết với một lớp "WizardData", trong đó cho thấy một danh sách các lớp cơ sở "WizardPage".

Lớp WizardData có thể hiển thị thuộc tính xác định thông tin chính xác trên biểu mẫu và hiển thị điều khiển cho trang chính sử dụng công cụ chọn mẫu để xác định điều khiển thích hợp hiển thị dựa trên loại thực tế của trang thuật sĩ cụ thể.

Nghe có vẻ như có nhiều công việc hơn thực tế. Nó cũng mang lại cho bạn lợi ích của việc tách biệt tốt giữa mã và UI (tất cả "công việc" được thực hiện bởi các lớp WizardData và WizardPage), và khả năng kiểm tra logic độc lập với giao diện người dùng.

Đó cũng là cách tiếp cận rất WPF/MVVM.

+0

bạn có biết ví dụ nào có thể giúp tôi bắt đầu không? Tôi không chắc chắn làm thế nào để làm những gì bạn nói "Có hình thức wizard liên kết với một lớp" WizardData ", trong đó cho thấy một danh sách các lớp cơ sở" WizardPage "" – baron

+0

Tôi sẽ xem nếu tôi có thể ném một ví dụ nhanh chóng với nhau. – kyoryu

0

Tôi nhận ra điều này không trực tiếp giải quyết câu hỏi của bạn, nhưng tôi nghĩ tôi sẽ đề cập đến nó như một giải pháp thay thế có thể. Tôi đã sử dụng điều khiển Wizard của Actipro với kết quả khá tốt, và khi tôi cần hỗ trợ, họ đã rất nhạy bén. Tôi không liên kết với họ bằng bất kỳ cách nào; Tôi chỉ muốn không phải viết đường ống dẫn nước để quản lý một thuật sĩ.

0
  1. Thuộc tính được gọi là "Mức hiển thị".
  2. Tôi thấy rằng tôi làm tốt hơn khi tôi tự động thêm và xóa các điều khiển thay vì ẩn chúng.
0

Tôi cũng đang tìm kiếm giải pháp Wizard. Tôi có nhu cầu gắn bó với các thành phần WPF cổ phiếu vì vậy tôi đã thực hiện thuật sĩ bằng cách sử dụng một biểu mẫu chuẩn và một điều khiển tab.

Tôi chỉ ẩn các tab trong thời gian chạy để có sẵn trong IDE. Khi chạy, chỉ cần sử dụng Quay lại, Tiếp theo, Kết thúc ... để điều hướng qua các mục tab

hoạt động tốt

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