2009-06-02 27 views
15

को कम से कम बॉक्स क्लिक करें कम से कम एक WPF विंडो के ईवेंट को क्लिक करने के लिए कैसे करें?एक WPF विंडो

+0

क्यों आप को पता है जब यह क्लिक किया गया था की जरूरत है? क्या कोई कारण है कि आपको यह जानने की ज़रूरत है कि बनाम बनाम विंडो की सदस्यता लेना। स्टेट चेंज किया गया? – Andy

उत्तर

28

StateChanged नामक एक ईवेंट है (सहायता से) ऐसा लगता है कि यह वही हो सकता है जो आप चाहते हैं।

जब विंडो की विंडोस्टेट संपत्ति में परिवर्तन होता है तो होता है।

मदद कहते हैं कि यह केवल .NET में समर्थित है 3.0 और 3.5 विस्टा के अंतर्गत है, लेकिन मैं सिर्फ XP पर यह कोशिश की है और यह आग जब खिड़की, कम से कम अधिकतम और बहाल है। हालांकि, मेरे परीक्षण से, के बाद यह राज्य बदल गया है, इसलिए यदि आप खिड़की को कम करने से पहले कुछ करना चाहते हैं तो यह संभवतः आपके दृष्टिकोण की आवश्यकता नहीं हो सकती है।

आपको यह सुनिश्चित करने के लिए वास्तविक स्थिति की जांच करनी होगी कि यह सही है।

private void Window_StateChanged(object sender, EventArgs e) 
    { 
     switch (this.WindowState) 
     { 
      case WindowState.Maximized: 
       MessageBox.Show("Maximized"); 
       break; 
      case WindowState.Minimized: 
       MessageBox.Show("Minimized"); 
       break; 
      case WindowState.Normal: 
       MessageBox.Show("Normal"); 
       break; 
     } 
    } 

जाहिर है अगर मैं राज्य को प्रिंट किया गया था मैं this.WindowState.ToString() प्रयोग करेंगे;)

निम्नलिखित विजुअल स्टूडियो द्वारा अपनी विंडो के XAML defintion करने के लिए जोड़ा जाना चाहिए:

StateChanged="Window_StateChanged" 
+2

** कुछ करने के बारे में जानकारी के लिए यह प्रश्न देखें ** ** विंडो से कम होने से पहले http://stackoverflow.com/questions/926758/window-statechanging-event-in-wpf –

0

क्षमा करें यह WPF के बारे में नहीं है क्योंकि मैंने WPF के साथ बहुत कुछ नहीं किया है। लेकिन एक और चीज जो आप कर सकते हैं फॉर्म के आकार की घटना के दौरान विंडोस्टेट संपत्ति की जांच करें। और यदि यह FormWindowState के बराबर है। माइमीमाइज्ड बटन को क्लिक किया गया है (?) ;-)

1

शोबैन के उत्तर के अलावा ...

आप विंडो की निष्क्रिय घटना का उपयोग कर सकते हैं, आप कर सकते हैं यहां तक ​​कि

private void Window_Deactivated(object sender, EventArgs e) 
{ 
     if(this.WindowState== WindowState.Minimized) 
      // Do your stuff 

} 

यह मदद मिलेगी नीचे के रूप में StateChange घटना का उपयोग ....

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