c# - WPF Expander - when GridSplitter used to manually resize row, row does not properly collapse -
यह मेरे पास है
& lt; Grid.RowDefinitions & gt; & Lt; RowDefinition ऊँचाई = "ऑटो" मिनहाइट = "25" / & gt; & Lt; RowDefinition ऊँचाई = "ऑटो" / & gt; & Lt; रोडिफिनिशन / & gt; & LT; /Grid.RowDefinitions> & Lt; Expander IsExpanded = "False" ग्रिड। राउ = "0" & gt; & Lt; डेटाग्रिड नाम = "फर्स्टग्रीड" / & gt; & Lt; / Expander & gt; & Lt; ग्रिडस्प्लीटर ग्रिड। रो = "1" क्षैतिज एलाइन्मेंट = "स्टैच" ऊँचाई = "5" / & gt; & Lt; डेटाग्रिड ग्रिड। रो = "2" नाम = "सेकंडग्रीड" / & gt; जब मैं विस्तारक पर विस्तार बटन पर क्लिक करता हूं, तो यह सही रूप से पंक्ति 0 को डेटाग्रिड फर्स्टग्रीड के आकार में फैलता है और यह पंक्ति को अच्छी तरह से गिरता है। यह तब काम नहीं करता है, अगर मैं फर्स्टग्रीड का विस्तार करता हूं तो ग्रिड-स्लाइटर को ऊपर या नीचे खींचकर उस पंक्ति का मैन्युअल रूप से आकार बदलना और फिर विस्तारक पर पतन बटन दबाकर। क्या होता है कि फर्स्टग्रीड गिर जाता है, लेकिन फर्स्टग्रीड ही पंक्ति में नहीं है। कोई सुझाव?
धन्यवाद
रोब सही है, एक बार जब आप ग्रिडप्लिटर ले जाते हैं, पहली पंक्ति की ऊंचाई स्वत: अब नहीं होगी, इसलिए यह विस्तारक आकार में परिवर्तन का जवाब नहीं देगा। इसके लिए काम करने के लिए आपको विस्तारक को एक व्यवहार जोड़ने की आवश्यकता होगी जो विस्तारकर्ता की बात सुनेगा। विस्तारित और संक्षिप्त घटना और स्वतः ग्रिड पंक्ति को फिर से अपडेट करें। ऐसा कुछ:
<पूर्व> सार्वजनिक वर्ग ग्रिड कॉलम WidthReseterBehavior: व्यवहार & lt; विस्तारक & gt; {निजी ग्रिड _पेरेंटग्रीड; सार्वजनिक int TargetGridRowIndex {get; सेट; } सुरक्षित ओवरराइड शून्य ऑन अटैचड () {AssociatedObject.Expanded + = AssociatedObject_Expanded; एसोसिएटेड ऑब्जेक्ट। Collapsed + = एसोसिएटेड ऑब्जेक्ट_लोप्सेड; FindParentGrid (); } निजी शून्य FindParentGrid () {DependencyObject parent = LogicalTreeHelper.GetParent (एसोसिएटेड ऑब्जेक्ट); जबकि (माता पिता! = शून्य) {यदि (माता पिता ग्रिड है) {_parentGrid = ग्रिड के रूप में माता पिता; वापसी; } माता-पिता = लॉजिकट्रीहेल्पर.गेटपैरेंट (एसोसिएटेड ऑब्जेक्ट); }} शून्य एसोसिएटेड ऑब्जेक्ट मेलोस्ड (ऑब्जेक्ट प्रेषक, सिस्टम। विन्डोज.रेटेड ईवेंटअर्गेस ई) {_parentGrid.RowDefinitions [TargetGridRowIndex] .ightight = GridLength.Auto; } शून्य संबद्धऑब्जेक्ट_एक्सपैन्ड किया गया (ऑब्जेक्ट प्रेषक, सिस्टम। विन्डोज। रूटेड ईवेंटअर्ग्स ई) {_parentGrid.RowDefinitions [TargetGridRowIndex] .ightight = GridLength.Auto; }} और आप इसे इस तरह प्रयोग करते हैं:
& lt; विस्तारक ... & gt; & LT; अन्तरक्रियाशीलता: Interaction.Behaviors & gt; & Lt; व्यवहार: ग्रिड कॉलमविड्थ रिसेटरविदेशी लक्ष्यग्रिडरेव इंडैक्स = "0" & gt; & lt; / व्यवहार: ग्रिड कॉलम WidthReseterBehavior & gt; & Lt; / अन्तरक्रियाशीलता: Interaction.Behaviors & gt; ...
Comments
Post a Comment