làm thế nào để thiết lập cửa sổ z-index windowsformhost mà chúng không phải lúc nào cũng ở trên cùng của phần tử WPF?WindowsFormsHost luôn là phần tử hàng đầu từ phần tử WPF
Trả lời
Theo MSDN (Layout Considerations for the WindowsFormsHost Element)
Một tổ chức Windows Forms điều khiển được rút ra trong một HWND riêng biệt, vì vậy nó là luôn rút ra trên đầu trang của các yếu tố WPF.
Đây là một hạn chế thiết kế
Một bài viết tốt từ MSDN giải thích các vấn đề có thể khi sử dụng công nghệ đồ họa khác nhau trong Windows là Technology Regions Overview
Tuy nhiên googling tôi thấy rằng hình như vẫn có một số hackings cho điều này (được gọi là giới hạn không phận)
Một bản hack (không bao giờ dùng thử cá nhân để không chắc chắn nếu nó hoạt động) là this link
"hack" liên kết 403s – RJFalconer
Update, một vài năm sau đó (2016-09):
My sau câu trả lời, như ghi nhận của những nhận xét trên, là không còn giá trị, và đã không có sẵn trong phiên bản cuối cùng của .NET 4.5, hoặc các bản phát hành tiếp theo. Thật không may, liên kết tôi đưa vào vẫn có thông tin đặt hàng z cho HwndHosts hiện tại cho "phiên bản hiện tại" của .NET, điều này có thể dẫn đến một số tin rằng chức năng này thực sự tồn tại. Nó không. Không có công việc xung quanh.
Original câu trả lời:
Một năm sau, mọi thứ đã thay đổi một chút với .NET 4.5. Đối với những người stumbled khi này, nhiều như tôi đã làm, đây là một đoạn trích được cập nhật nhiều hơn từ Walkthrough: Arranging Windows Forms Controls in WPF trên MSDN:
Theo mặc định, các yếu tố WindowsFormsHost có thể nhìn thấy luôn rút ra trên đầu trang của các yếu tố WPF khác, và họ là không bị ảnh hưởng bởi thứ tự z. Để bật đặt hàng z, hãy đặt thuộc tính IsRedirected của WindowsFormsHost thành true và thuộc tính CompositionMode thành Full hoặc OutputOnly.
Tất cả bạn cần làm, khi sử dụng .NET 4.5, là thêm các thuộc tính sau đây để yếu tố WindowsFormsHost bạn IsRedirected="True"
và CompositionMode="Full"
hoặcCompositionMode="OutputOnly"
.
Đã kiểm tra ngày hôm nay - những thuộc tính này chỉ có trong bản phát hành beta của .net 4.5. unfortunatelly họ did't làm theo cách của họ để phát hành bình thường. –
1.3.10 Windows Presentation Foundation (WPF) 1.3.10.1 Tính năng HwndHost đã bị xóa khỏi WPF trong .NET Framework 4.5 Beta .NET Framework 4.5 Developer Preview bao gồm tính năng chuyển hướng WPF HwndHost. Tuy nhiên, tính năng này có một số vấn đề đã biết và đã bị xóa khỏi .NET Framework 4.5 Beta. Nó sẽ không được bao gồm trong bất kỳ bản phát hành trong tương lai. Để giải quyết vấn đề này: Không có giải pháp thay thế. – lukaszk
Cách sử dụng nó trong .NET 4? Có thể không? – mrhands
Tôi vừa gặp phải vấn đề tương tự.
Có một workaround tiềm năng - phụ thuộc vào bản chất của Windows kiểm soát cửa sổ Host và các yếu tố WPF bạn muốn xuất hiện:
tôi bị ràng buộc các các WindowsFormsHost
kiểm soát của Visibility
đến một tài sản trên mô hình quan điểm của tôi cho phép tôi để ẩn máy chủ (và các điều khiển trên nó) khi tôi muốn hiển thị WPF mà chúng tôi muốn xuất hiện trên nó.
Trong trường hợp của tôi, WindowsFormsHost của tôi nằm trong Lưới hai hàng.Hàng dưới cùng có một StackPanel trong nó thay đổi chiều cao tùy thuộc vào những gì nó chứa. Tôi xử lý sự kiện LayoutUpdated của StackPanel để thay đổi kích thước WindowsFormsHost của tôi bằng cách trừ nó là ActualHeight từ ActualHeight của Grid. Hãy chắc chắn sử dụng ActualHeight không Chiều cao.
void ResizeWinhost()
{
mainGrid.UpdateLayout();
detailPanel.UpdateLayout();
winHost.Height = mainGrid.ActualHeight - detailPanel.ActualHeight - 5;
}
- 1. Thêm phần tử vào đầu phần tử nhóm
- 2. cách thêm phần tử luôn là phần tử cuối cùng bằng cách sử dụng jquery?
- 3. Loại phần tử của các phần tử giả là gì?
- 4. MATLAB: chèn phần tử sau phần tử?
- 5. Nhận tất cả các phần tử, nhưng phần tử đầu tiên từ một mảng
- 6. Làm thế nào để loại bỏ margin từ mọi phần tử là phần tử cuối cùng trong một hàng?
- 7. Remove phần tử từ mảng
- 8. chọn hàng và phần tử trong awk
- 9. xoá phần tử đầu tiên khỏi mảng
- 10. C - phần tử nằm ngoài phần đầu của một mảng
- 11. Bắt đầu kéo bằng phần tử khác
- 12. Cách chèn làm phần tử đầu tiên trong từ điển?
- 13. Array.Copy luôn là hàng chính?
- 14. bootstrap ban đầu phần tử bị sập
- 15. Phần tử XML có thể chứa các phần tử văn bản và phần tử con cùng một lúc không?
- 16. Tìm các phần tử N hàng đầu trong một Multiset từ Google Bộ sưu tập?
- 17. Mootools lấy chỉ mục con của một phần tử từ phần tử cha
- 18. Làm cách nào để lấy phần tử đầu tiên sau phần tử có LINQ-to-XML?
- 19. Lấy các phần tử n hàng đầu từ mảng ruby của các giá trị băm
- 20. Thêm phần tử vào phần tử cuối cùng của mảng
- 21. Nếu phần tử vượt quá một phần tử khác?
- 22. đếm số phần tử giữa phần tử "này" và "đó"
- 23. C++ cho mỗi phần, kéo từ các phần tử vector
- 24. jQuery: Thêm phần tử sau phần tử thứ n
- 25. Phần tử căn giữa bên trong một phần tử (jQuery)
- 26. jQuery - Lấy phần tử từ mảng thành phần jQuery?
- 27. PHP DOM thay thế phần tử bằng phần tử mới
- 28. Selenium: tìm phần tử "bên cạnh" phần tử khác
- 29. Kiểm tra xem phần tử là trước hoặc sau một phần tử trong jQuery
- 30. cách lấy con của một phần tử WPF
Câu trả lời đơn giản: bạn không thể. Xem [tại đây] (http://stackoverflow.com/questions/8006092/controls-dont-show-over-winforms-host). – Clemens