WPF ascunde pe aproape?

voturi
4

Cum pot face acest lucru în WPF

VB.NET

   Private Sub FrmSettings_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
        e.Cancel = (e.CloseReason = Forms.CloseReason.UserClosing)
        Me.Hide()
    End Sub

c #

private void FrmSettings_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
{
    e.Cancel = (e.CloseReason == Forms.CloseReason.UserClosing);
    this.Hide();
}

ca eveniment Închide WPF tocmai dă-mi e.Cancel și nici un closereason :(

Întrebat 12/03/2009 la 13:43
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
5

Nu există un echivalent în punerea în aplicare implicit a WPF. Aveți posibilitatea să utilizați un cârlig ferestre pentru a obține motivul totuși.

Detalii Următorul mesaj cum să facă acest lucru: http://social.msdn.microsoft.com/forums/en-US/wpf/thread/549a4bbb-e77b-4c5a-b724-07996774c60a/

Publicat 12/03/2009 la 13:47
sursa de către utilizator

voturi
5

Nu sunt sigur că înțeleg ce rezolvă abordarea WinForms.

Nu este mai bine să faci mereu acest lucru:

Protected Overrides Sub OnClosing(ByVal e As System.ComponentModel.CancelEventArgs)
    e.Cancel = True
    Me.Hide()
End Sub

Și apoi setați acest lucru în cererea dumneavoastră?

Application.Current.ShutdownMode = System.Windows.ShutdownMode.OnMainWindowClose

În acest fel, de fiecare dată când copilul dumneavoastră închideți ferestrele, vă păstrați-le în jurul valorii de afișare mai rapid mai târziu, dar aplicația încă shutsdown atunci când fereastra principală se închide (adică Ieșire, închidere, etc.).

Publicat 12/03/2009 la 17:43
sursa de către utilizator

voturi
5

Aș dori să-i mulțumesc lui Bob regelui pentru indiciu lui și să facă un plus față de codul său ca C # WPF. Merge pentru mine. Aplicația mea este o pictograma tavă în funcție de tipul. Într-o formă WPF XAML codul din spatele:

protected override void OnInitialized(EventArgs e)
{
    base.OnInitialized(e);

    Application.Current.ShutdownMode = System.Windows.ShutdownMode.OnMainWindowClose;
}

private bool m_isExplicitClose = false;// Indicate if it is an explicit form close request from the user.

protected override void OnClosing(System.ComponentModel.CancelEventArgs e)

{

    base.OnClosing(e);

    if (m_isExplicitClose == false)//NOT a user close request? ... then hide
    {
        e.Cancel = true;
        this.Hide();
    }

}

private void OnTaskBarMenuItemExitClick(object sender, RoutedEventArgs e)

{            
    m_isExplicitClose = true;//Set this to unclock the Minimize on close 

    this.Close();
}
Publicat 15/04/2010 la 04:30
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more