2010-06-29 38 views
6

Tôi đang tạo một cửa sổ HUD để kiểm tra các thực thể biz trong ứng dụng WinForms của tôi.Cách thêm cửa sổ WPF vào ứng dụng WinForms

Tôi muốn có một kiểu cửa sổ hoàn toàn khác (giảm thiểu vùng nội dung và chỉ hiển thị TitleBar, không có nút hệ thống, v.v.) vì vậy tôi đã tạo một ứng dụng WPF cho việc này.

Vấn đề là tôi muốn Cửa sổ này 'sống' bên trong ứng dụng WinForms của tôi. Tôi không thể chỉ cần thêm WPF như là một OwnedForm hoặc thiết lập các hình thức chính là chủ sở hữu của cửa sổ WPF.

Vì vậy, làm thế nào để đạt được điều này?

EDIT: Cảm ơn bạn đã tìm thấy câu trả lời. Đây là đoạn mã:

System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(_inspector); 
WindowInteropHelper inspectorHelper = new WindowInteropHelper(_inspector); 
inspectorHelper.Owner = this.Handle; 
_inspector.Show(); 

Trả lời

5

Cửa sổ WPF có xử lý/bối cảnh cửa sổ Win32.

Xem WindowInteropHelper. Bạn có thể sử dụng điều này với Win32 (hoặc có lẽ có hỗ trợ WinForms?) Để đặt cửa sổ chủ sở hữu của Cửa sổ WPF. Lưu ý rằng xử lý không tồn tại cho đến khi sự kiện "khởi tạo nguồn" (?).

Tuy nhiên, chỉ sử dụng WinForms, bạn có thể tùy chỉnh thanh tiêu đề nhiều như bạn cần (bạn có thể ghi đè bản vẽ qua Win32 và tôi nghĩ bạn mất tất cả các hộp điều khiển mà không đi xa này).

Có rất nhiều kết quả của google về chủ đề này nếu bạn sử dụng từ khóa chính xác.

+2

WindowInteropHelper hoạt động tốt! Có vẻ như tôi đã không sử dụng các từ khóa chính xác, tôi đã tìm kiếm cả ngày cho nó. Cảm ơn bạn một lần nữa! – jpsstavares

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