2010-08-03 17 views
17

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

मैंने खिड़की की कोशिश की है। फोकस() और विंडो। दिखाएं() लेकिन उनमें से दोनों काम नहीं करते हैं। एक कामकाज के रूप में मैं उपयोग करता हूं ...

bool oldTopMost = window.Topmost; 
window.Topmost = true; 
window.Topmost = oldTopMost; 
window.Focus(); 

... यह नौकरी करता है लेकिन मुझे बहुत बदसूरत लग रहा है। क्या इसके लिए कोई बेहतर समाधान है?

उत्तर

30

आप Window.Activate बजाय इस्तेमाल कर सकते हैं:

window.Activate(); 

यह SetForegroundWindow बुला लिए WPF बराबर है।

+1

बिल्कुल सही! धन्यवाद। – HCL

+1

विंडो को पुनर्स्थापित करने के लिए यदि इसे कम से कम उपयोग किया गया था: 'if (myWindow.WindowState == WindowState.Minimized) myWindow.WindowState = WindowState.Normal;' यह विंडो की अधिकतम स्थिति को भी सुरक्षित रखेगा, इसे वापस सामान्य पर वापस नहीं लाएगा। – r41n

संबंधित मुद्दे