2011-01-05 9 views
8

sto ottenendo qualche comportamento strano che sto avendo problemi con:Finestra problema di messa a fuoco con .NET 4.0 e WindowsFormstHost

  1. aggiungere un semplice Form con box di testo a un WindowsFormsHost;
  2. Aggiungi un pulsante che apre un'altra finestra WPF (non impostazione proprietario);
  3. Ingrandire la finestra WPF originale e fare clic sulla casella di testo in modo che abbia lo stato attivo ;
  4. Quando si esegue questa operazione, quindi provare a attivare l'altra finestra WPF da la barra delle attività viene attivata e quindi disattivata.

Ciò che preoccupa è che se lo compilo sotto .NET 3.5 non ha alcun problema.

Qualche idea?

+0

Ho visto lo stesso problema: vi siete avvicinati a una correzione? –

+1

Questo è sicuramente un bug: 1. Questo succede anche se la finestra non è ingrandita 2. Succede anche se usi ALT + TAB! Tuttavia, se si utilizza WINDOWS + TAB (o Aero switching), passa alla finestra secondaria. Oggi non ho tempo, ma sospetto che ci sia un modo per catturare l'evento Windows che si verifica quando viene eseguito il passaggio da una barra delle applicazioni/alt +, quindi l'attenzione può essere tolta dal controllo WinfowsFormsHost, tenuto in un campo statico sull'applicazione WPF, quindi reintegrato nel passaggio alla finestra offensiva. Ho verificato che con una normale casella di testo WPF, questo problema non si verifica. –

+0

Nota: quando dico che questo è sicuramente un bug, non è verificato con Microsoft .. solo il comportamento ei sintomi indicano tutti "bug". –

risposta

1

L'implementazione di questa su una finestra derivata aiuta un po '- ma non risolve completamente il problema:

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); 
} 

Imposta attivo alla finestra su Disattiva - questo non è abbastanza presto in modo di attivazione lancia indietro, ma quando alt-tab, la seconda volta cambia. Il controllo focalizzato non è tuttavia preservato. Ho provato a mettere a fuoco il set di messa a fuoco, ma non va bene.

Problemi correlati