Când windows.forms.form se închide, ascunde fereastra wpf părinte

Am Windows.Forms.Form și arătându-l am setat un WPF RibbonWindow părintelui său

    public DialogResult ShowDialog(IWin32Window owner)
    {
        DialogResult returnDialogResult = DialogResult.Cancel;
        DummyForm form = new DummyForm(this);
        form.Show(owner);
        ...
        form.Close();
        return returnDialogResult;
    }

După ce formularul metodei form.Close() se închide, dar fereastra părinte își pierde focalizarea și devine ascunsă.

Apelarea metodei Focus() sau Activate() a acelei ferestre părinte după acea metodă ShowDialog(IWin32Window) nu rezolvă problema, fereastra principală încă ascunsă.

Cum pot seta fereastra principală activă și vizibilă?


person Miklós Balogh    schedule 04.10.2013    source sursă
comment
Nu vă documentați corect întrebarea. Cu siguranță nu este de fapt ascuns, ci suprapus de o fereastră dintr-o altă aplicație? Acest lucru este cauzat de reactivarea prea târziu a ferestrei proprietarului, luați în considerare utilizarea evenimentului FormClosing. Sau doar lăsați-l pe Winforms să găsească un proprietar, este destul de bun să-l găsească pe cel potrivit.   -  person Hans Passant    schedule 04.10.2013


Răspunsuri (1)


A existat o întrebare similară ca aceasta ieri referitoare la o configurare WPF părinte/copil Window. Nu am putut găsi o modalitate de a împiedica să se întâmple, dar ce zici să restabilim Window după ce se întâmplă acest lucru?:

if (window.WindowState == WindowState.Minimized)
    window.WindowState = WindowState.Normal;

UPDATE >>>

Dacă Window nu este setat la WindowState.Minimized, atunci când știți când se întâmplă acest lucru, ar trebui să puteți face acest lucru:

window.WindowState = WindowState.Minimized;
window.WindowState = WindowState.Normal;

UPDATE 2 >>>

Dacă acest lucru tot nu vă rezolvă problema, atunci vă rugăm să aruncați o privire la recenta Închiderea ferestrei copilului minimizează postarea părinte, care are acum câteva exemple de soluții suplimentare.

person Sheridan    schedule 04.10.2013
comment
Statul Windows rămâne WindowState.Normal - person Miklós Balogh; 04.10.2013