2010-09-10 28 views
11

Ứng dụng WinForm khá lớn của tôi cần một đại tu GUI, nhưng tôi không thể đủ khả năng để làm tất cả cùng một lúc. Tôi cần phải biết nếu tôi có thể từ từ thêm WPF vào nó, và nếu như vậy, làm thế nào?Trộn WPF bằng ứng dụng WinForm?

Tôi có thể thêm các hộp thoại WPF không?

Tôi có thể thêm WPF 'bảng' trong một WinForm để tôi có thể nhúng các yếu tố WPF?

EDIT

Tôi có thể làm các hộp thoại WinForm đối diện và đưa vào ứng dụng WPF của tôi?

Trả lời

10

Có, bạn có thể lưu trữ khiển WPF trong các ứng dụng WinForms của bạn:

Walkthrough: Hosting a 3-D WPF Composite Control in Windows Forms

Walkthrough: Hosting a Composite WPF Control in Windows Forms

+1

Liên kết thứ hai hiện đã bị hỏng. Có một lý do chúng tôi không thích câu trả lời chỉ có liên kết ở đây. –

+0

Ngay cả liên kết đầu tiên không còn khả dụng bây giờ: ( – Pankaj

+0

@Pankaj - Tôi đã cập nhật các liên kết (thay đổi hoàn toàn thứ hai) để chúng hoạt động ngay bây giờ Nếu tôi có thời gian, tôi sẽ quay lại và cập nhật một ví dụ. –

6

Yep, tôi đã winforms hỗn hợp thành công và WPF. Tôi thậm chí còn quản lý để thêm các cửa sổ WPF để ứng dụng win32, thay đổi ứng dụng này thành một dll và sử dụng một ứng dụng WPF để hiển thị các cửa sổ win32 hiển thị các cửa sổ WPF.

Để đăng cai cửa sổ WPF trong WinForm hoặc win32 ứng dụng, bạn sẽ cần dòng này befor bạn .show() WpfWindow của bạn:

System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(myWpfWindow); 

Xem http://msdn.microsoft.com/en-us/library/aa348549.aspx

0

Bạn có thể sử dụng điều khiển ElementHost tìm thấy trong hệ thống .Windows.Forms.Integration namespace. Bạn sẽ cần tham chiếu đến nhóm WindowsFormsIntegration (trong WindowsFormsIntegration.dll)

Điều khiển này là một thùng chứa rỗng mà bạn có thể đặt các điều khiển WPF, ví dụ:

myElementHost.Child = someWpfControl; 

Bạn có thể tìm thấy nó trong hộp công cụ và kéo và thả nó vào biểu tượng thắng giống như bất kỳ điều khiển nào khác;

enter image description here

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