WPF

2009-05-27 8 views
7

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

उदाहरण के लिए, जब आप Internet Explorer 7 में 'पसंदीदा' स्टार आइकन पर क्लिक करें या आप दो बार फ़ायरफ़ॉक्स में स्थान पट्टी में स्टार क्लिक करें और इसे बुकमार्क संपादक संवाद को लाता है।

स्पष्ट तरीका इस लक्ष्य को हासिल करने के लिए क्या है?

मैं एक UserControl का उपयोग करना चाहिए और स्थान जब एक बटन क्लिक किया जाता है बिल्कुल ठीक? यदि हां, तो उपयोगकर्ता इसे कहीं और क्लिक करते समय इसे कैसे छिपा सकता है?

उत्तर

13

मैं कहना चाहता हूँ कि आप क्या देख रहे हैं करने के लिए स्पष्ट तरीका एक Popup उपयोग करने के लिए है। पॉपअप क्लास एक तत्व प्रदर्शित करता है जो स्क्रीन पर शेष तत्वों के ऊपर तैरता है, लेकिन गैर-मोडल है और जब उपयोगकर्ता इससे दूर क्लिक करता है तो गायब होने के लिए कॉन्फ़िगर किया जा सकता है - आपके गैर-मोडल संवाद के लिए बिल्कुल सही। पॉपअप क्लास में गुण होते हैं जो आपको यह नियंत्रित करने की अनुमति देते हैं कि यह कहां से दूसरे नियंत्रण के सापेक्ष दिखाता है (आपके मामले में, वह बटन जिसे आप पॉपअप खोलने के लिए दबाए रखना चाहते हैं)।

<Grid> 
    <ToggleButton HorizontalAlignment="Center" VerticalAlignment="Top" 
        x:Name="PopButton" Content="Pop"/> 
    <Popup Placement="Bottom" PlacementTarget="{Binding ElementName=PopButton}" StaysOpen="False" 
      IsOpen="{Binding ElementName=PopButton, Path=IsChecked, Mode=TwoWay}"> 
     <Rectangle Height="100" Width="200" Fill="Blue"/> 
    </Popup> 
</Grid> 

तुम भी आज्ञा या ईवेंट हैंडलर्स का उपयोग कर सकते खोलने/कोड से पॉपअप बंद करने:

यहाँ एक सब XAML उदाहरण है।

प्लेसमेंट और प्लेसमेंट लक्ष्य गुण सेट करें जहां पॉपअप दिखाई देगा, और कौन सा नियंत्रण इसके सापेक्ष दिखाई देगा (अन्य विकल्प भी हैं जो आपको इसकी वर्तमान स्थिति के सापेक्ष और माउस के सापेक्ष भी दिखाई देते हैं)। स्टैस को सेट करने के लिए गलत होने पर WPF स्वचालित रूप से पॉपअप बंद कर देगा जब उपयोगकर्ता इसके बाहर क्लिक करता है।

डिफ़ॉल्ट रूप से, पॉपअप की अपनी कोई शैली नहीं होती है - यह केवल फ़्लोटिंग सामग्री के लिए एक कंटेनर है - इसलिए आपको इसे अपनी विंडो क्रोम/टूलबार/आदि की तरह दिखाना होगा। के रूप में उपयुक्त।

+0

है कि मैं वास्तव में क्या जरूरत है! धन्यवाद। –

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