2011-01-05 28 views
8

tôi nhận được một số hành vi kỳ lạ mà tôi đang gặp rắc rối với:Window với .NET 4.0 và WindowsFormstHost

  1. Thêm một hình thức đơn giản điều khiển với hộp văn bản để một WindowsFormsHost;
  2. Thêm nút mở một Cửa sổ WPF khác (không đặt chủ sở hữu);
  3. Phóng to cửa sổ WPF gốc và nhấp vào hộp văn bản để tập trung ;
  4. Khi bạn làm điều đó và sau đó thử kích hoạt cửa sổ WPF khác từ thanh tác vụ được kích hoạt và sau đó tắt.

Điều đáng lo ngại là nếu tôi biên dịch điều này theo .NET 3.5, nó không hoạt động.

Bất kỳ ý tưởng nào?

+0

Tôi đã thấy cùng một vấn đề - bạn đã đến gần hơn để khắc phục chưa? –

+1

Điều này chắc chắn là một lỗi: 1. Điều này cũng xảy ra nếu cửa sổ không được tối đa 2. Điều đó xảy ra nếu bạn sử dụng ALT + TAB! Tuy nhiên, nếu bạn sử dụng WINDOWS + TAB (hoặc chuyển mạch Aero), nó sẽ chuyển sang cửa sổ con. Tôi không có thời gian ngày hôm nay, nhưng tôi nghi ngờ nếu có một cách để nắm bắt các sự kiện cửa sổ xảy ra khi chuyển đổi thanh tác vụ/alt + tab được thực hiện, thì tiêu điểm có thể được lấy ra khỏi điều khiển WinfowsFormsHost, được giữ trong một trường tĩnh trên ứng dụng WPF, sau đó được khôi phục trên nút chuyển về cửa sổ vi phạm. Tôi đã xác minh rằng với một hộp văn bản WPF thông thường, vấn đề này không xảy ra. –

+0

Lưu ý: Khi tôi nói điều này chắc chắn là một lỗi, nó không được xác minh với Microsoft .. chỉ là hành vi và các triệu chứng tất cả chỉ đến "lỗi". –

Trả lời

1

Thực hiện điều này trên một cửa sổ có nguồn gốc giúp một chút - nhưng không giải quyết được vấn đề hoàn toàn:

protected override void OnDeactivated(EventArgs e) 
{ 
    var host = System.Windows.Input.FocusManager.GetFocusedElement(this) as System.Windows.Forms.Integration.WindowsFormsHost; 
    if (host !=null) 
    { 
    Focus(); 
    } 

    base.OnDeactivated(e); 
} 

Nó đặt trọng tâm vào cửa sổ trên Tắt - đây là không đủ sớm để kích hoạt flips trở lại, nhưng khi bạn alt-tab lần thứ hai nó chuyển. Kiểm soát tập trung không được bảo tồn mặc dù. Tôi đã thử gửi tập trung - nhưng không tốt.

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