प्रति this page पर क्या क्लिक किया जाता है, ड्रॉपडाउनबटन आइटम्ससोर्स को प्रदर्शित करने के लिए कॉन्टेक्स्टमेनू का उपयोग कर रहा है। हम कैसे जान सकते हैं कि उपयोगकर्ता किस पर क्लिक करता है? बटन पर क्लिक ईवेंट मेनू के लिए नहीं है, लेकिन बटन स्वयं ही है। मैं इस पर कोई अन्य घटना नहीं देखता हूं।ड्रॉपडाउन बटन
उत्तर
ContextMenu/DropDownButton (जिसे भी आप पसंद करते हैं) में attached property
बनाएं। यदि आपने ड्रॉपडाउन किया है तो उस संदर्भ मेनू को प्राप्त करें जो यह दिखा रहा है, उसके बाद Click
ईवेंट को हुक अप करें और मान को वापस संपत्ति पर धक्का दें।
आप नियंत्रण के लिए आइटम टेम्पलेट ओवरराइड कर सकते हैं और इस तरह से इसके अंदर एक हैंडलर जोड़ सकते हैं:
<controls:DropDownButton Content="Select me" x:Name="selectMeDropDownButton">
<controls:DropDownButton.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" MouseDown="selectMeDropDownButton_TextBlock_MouseDown" />
</DataTemplate>
</controls:DropDownButton.ItemTemplate>
</controls:DropDownButton>
और ईवेंट हैंडलर में इस तरह कोड-पीछे फ़ाइल को लागू:
void selectMeDropDownButton_TextBlock_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left && this.selectMeDropDownButton.IsExpanded)
{
var value = ((TextBlock)e.Source).DataContext;
// Do something meaningful with the value, it's an item from ItemsSource
}
}
DropDownButton.IsExpanded
के लिए चेक आवश्यक है क्योंकि ItemTemplate
को Content
पर बटन पर ही लागू किया गया है। बेशक आप किसी भी Control
/UIElement
के साथ टेक्स्टब्लॉक को प्रतिस्थापित कर सकते हैं।
आईएमओ '
मैं इस प्रश्न में एक ही जवाब की तलाश में आया था। मैंने कभी भी कुछ भी ऑनलाइन नहीं पाया लेकिन इस समाधान को अपने आप खोज लिया। शायद यह भविष्य में किसी की मदद करेगा।
जैसा कि पहले बताया गया है DropDownButton
प्रदर्शित करने के लिए ContextMenu
का उपयोग करता है। असल में जो मैं खोज रहा था वह एक बटन से आने वाला "मेनू-जैसी" ड्रॉप डाउन था। उदाहरण के लिए, कहें कि आपके पास DropDownButton
है जो "जोड़ें" कहता है। शायद आप 2 विकल्प चाहते हैं जैसे "नया जोड़ें" और "मौजूदा जोड़ें"। तो मैंने यही किया ...
सबसे पहले मैंने हेडर/सामग्री और कमांड को पकड़ने के लिए कुछ ऑब्जेक्ट बनाया।
public class TitledCommand
{
public String Title { get; set; }
public ICommand Command { get; set; }
}
सैद्धांतिक रूप से आप DropDownButton
की ItemsSource
करने के लिए बाध्य करने के लिए इन की एक सूची के लिए होगा।
public List<TitledCommand> TitledCommmands { get; private set; }
अब हम सिर्फ आइटम कंटेनर शैली के लिए DropDownButton
तो यह ItemsSource
में हमारे वस्तुओं से शीर्ष लेख और आदेश को चुनता है।
xmlns:metroControls="http://metro.mahapps.com/winfx/xaml/controls"
और यहाँ शैली है ...
<metroControls:DropDownButton Content="Add" ItemsSource="{Binding Path=TitledCommmands}">
<metroControls:DropDownButton.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding Path=Title}"/>
<Setter Property="Command" Value="{Binding Path=Command}"/>
</Style>
</metroControls:DropDownButton.ItemContainerStyle>
</metroControls:DropDownButton>
'<सेटर प्रॉपर्टी =" हैडर "वैल्यू =" {बाध्यकारी पथ = शीर्षक} "/>' का उपयोग नहीं कर रहा था, और डिस्प्ले मेम्बरपाथ एट्रिब्यूट बेहतर था, लेकिन आप लाइफसेवर हैं;) – kwesolowski
इसे स्वीकार किया जाना चाहिए जवाब। –
अच्छी तरह से किया गया! thx – petric
उपयोग SplitButton बजाय DropDownButton:
MahApps शामिल करें। पहले चयन चयन घटना है।
हां लेकिन उनके पास क्लिक होने पर वही अनुभव नहीं है ... – petric
- 1. एंड्रॉइड ड्रॉपडाउन बटन
- 2. बूटस्ट्रैप/ड्रॉपडाउन बटन
- 3. ट्विटर बूटस्ट्रैप बटन ड्रॉपडाउन
- 4. कोणीयजेएस और बूटस्ट्रैप के विभाजन बटन ड्रॉपडाउन
- 5. स्प्लिट ड्रॉपडाउन बटन समान आकार नहीं
- 6. रेडियो बटन पर साफ़ ड्रॉपडाउन चयन
- 7. टैब फलक में बूटस्ट्रैप बटन ड्रॉपडाउन ओवरफ्लो
- 8. ड्रॉपडाउन फॉर्म
- 9. ड्रॉपडाउन
- 10. ड्रॉपडाउन
- 11. ड्रॉपडाउन?
- 12. ड्रॉपडाउन
- 13. ड्रॉपडाउन
- 14. आईओएस पर बूटस्ट्रैप बटन ड्रॉपडाउन क्यों नहीं काम करता है?
- 15. केवल HTML और CSS के साथ ड्रॉपडाउन बटन बनाना?
- 16. कस्टम टिनिमस ड्रॉपडाउन मेनू में टूलबार बटन कैसे जोड़ूं?
- 17. ड्रॉपडाउन के भीतर बूटस्ट्रैप ड्रॉपडाउन
- 18. एक्शनबारशेलॉक ड्रॉपडाउन नेविगेशन स्पिनर
- 19. बूटस्ट्रैप केंद्र ड्रॉपडाउन मेनू
- 20. डब्ल्यूपीएफ टूलबार में ड्रॉपडाउन मेनू
- 21. एक ड्रॉपडाउन
- 22. बूटस्ट्रैप ड्रॉपडाउन
- 23. ड्रॉपडाउन सूची
- 24. बूटस्ट्रैप ड्रॉपडाउन
- 25. JQuery - ड्रॉपडाउन
- 26. ड्रॉपडाउन चयन
- 27. टेम्पलेट ड्रॉपडाउन
- 28. क्या ड्रॉपडाउन
- 29. बूटस्ट्रैप ड्रॉपडाउन
- 30. प्लेसहोल्डर ड्रॉपडाउन
इन घटनाओं की जांच करें: 'ड्रॉपडाउन ओपन/ड्रॉपडाउन क्लोज़ड', 'कॉन्टेक्स्टमेनू ओपनिंग/कॉन्टेक्स्टमेनूक्लिंग'। –
WPF में ईवेंट का उपयोग न करें। संभावना है कि नियंत्रण में 'चुनीItem' प्रॉपर्टी है, या- आप' प्रत्येक 'आइटम को' आदेश 'नियमित रूप से' मेनू 'में असाइन कर सकते हैं। –
@ हाईकोर: ड्रॉपडाउन बटन, उद्धरण: 'यह नियंत्रण स्प्लिट बटन के रूप में लगभग कुछ अंतरों के समान है: इसमें कोई चयनित इटैम और चयनित इंडेक्स गुण नहीं हैं और इसमें कोई चयन चेंज इवेंट नहीं है।' –