2011-10-10 11 views
12

हैंडल करें मैं सोच रहा था कि क्या डब्लूपीएफ एप्लीकेशन एक्जिट इवेंट को संभालने का कोई तरीका था जैसे बाहर निकलना रद्द कर दिया गया था। उपयोग का मामला यह है कि मेरे पास क्लाइंट-सर्वर स्थिति है जहां सर्वर एक WPF ऐप है। मैं चाहता हूं कि WPF ऐप क्लाइंट को बंद होने पर सूचित करे, लेकिन शटडाउन प्रक्रिया को रद्द करें। क्लाइंट को शट डाउन अधिसूचना प्राप्त करनी चाहिए, अपने स्वयं के आवश्यक सफाई करें और फिर अनुरोध के माध्यम से डब्ल्यूपीएफ ऐप को बंद करने के लिए कहें।एक डब्ल्यूपीएफ एक्जिट इवेंट

क्या यह संभव है?

+0

यदि ग्राहक सर्वर को बंद करने के लिए नहीं कहता है तो आप क्या करते हैं? – Paparazzi

उत्तर

31

आप घटना इस तरह अपने मुख्य विंडो पर बंद हुक कर सकते हैं -

<Window Closing="Window_Closing"> 

और आपके घटना में सच करने के लिए e.Cancel सेट बंद करने से खिड़की बंद करने के लिए। आपके मामले में आप कुछ फ़ील्ड को बनाए रख सकते हैं जिसे क्लाइंट से अधिसूचना मिलने के बाद सेट किया जाएगा कि उसने क्लीनअप के साथ किया है और विंडो को बंद करने के लिए अभी सुरक्षित है। बस उस मान को e.Cancel

private void Window_Closing(object sender, CancelEventArgs e) 
{ 
    e.Cancel = true; 
}