wpf - Silverlight Canvas on Scrollviewer not triggering -


यह क्यों wpf में बहुत अच्छा काम करता है

  & lt; ScrollViewer क्षैतिज ScrollBarVisibility = "Auto" VerticalScrollBarVisibility = "ऑटो" & gt; & Lt; कैनवास एक्स: नाम = "मायडाइजर" & gt; & Lt; / कैनवास & gt; & Lt; / ScrollViewer & gt;  

अब जब मैं सिल्वरलाइट में एक ही काम करता हूं और नियंत्रण को लोड करता हूं "जिसे ड्रैग किया जा सकता है" स्क्रॉलबार चालू नहीं होते हैं, जब मैं दृश्य से बाहर खींचता हूं, कुछ भी नहीं होता ... लेकिन Wpf यह स्वचालित रूप से उन्हें दिखाता है ...

यहाँ मैं पाया समाधान है कैनवास गतिशील रूप से बढ़ सकता है, लेकिन आपको स्पष्ट रूप से ऊंचाई को एक नए मान में सेट करना होगा। इसलिए, यदि आपके पास 21 की ऊँचाई वाले 20 टेक्स्टब्लॉन्स हैं, तो आपको कैनवास की ऊँचाई सेट करना होगा: कैनवास.हाइट = 22.0 * 100 ; स्क्रॉलवरकर्ता को नई ऊँचाई लेने के लिए।

MainPage.xaml

  & lt; कैनवास कैनवास.लिफ्ट = "5" कैनवास.Top = "25" & gt; & Lt; ScrollViewer Width = "300" ऊँचाई = "700" x: नाम = "CanSummaryScroller" & gt; & Lt; कैनवास x: नाम = "cansummarycells" & gt; & Lt; / कैनवास & gt; & Lt; / ScrollViewer & gt; & Lt; / कैनवास & gt;  

MainPage.xaml.cs

boxDevSumList टेक्स्ट बॉक्स की एक सूची है

  के लिए (int i = 0; i & lt; 100; i ++) {boxDevSumList.Add (नया सेल ()); (BoxDevSumList.ElementAt (i))। चौड़ाई = 271; (BoxDevSumList.ElementAt (i))। ऊँचाई = 21; (बॉक्सडीवसम लिस्ट। एलेमेंटएट (आई))। सेट वैल्यू (फॉन्टफैमिली प्रॉपर्टी, नया फ़ॉन्टफ़ैमिली ("कैलिबरी")); (BoxDevSumList.ElementAt (i))। FontSize = 12; (बॉक्सडीवसम लिस्ट। एलेमेंटएट (आई))। पाठ = "यह एक परीक्षा है"; अगर (i.Equals (1) || i.Equals (3) || i.Equals (5) || i.Equals (7) || i.Equals (9)) (बॉक्सडिवसम लिस्ट.एलेमेंटएट (आई))। पृष्ठभूमि = एलजीब्रश; (बॉक्सडीवसम लिस्ट। एलेमेंटएट (आई))। अपारदर्शिता = 9; canSummaryCells.Children.Add (boxDevSumList.ElementAt (i)); BoxDevSumList.ElementAt (i) .SetValue (कैनवास.TopProperty, (डबल) (i * 21) + 45); बॉक्सडिवसमलिप। एलेमेंटएट (i) .सेट वैल्यू (कैनवास। लेफ्टप्रॉपर्टी, 4.0); CanSummaryCells.Height = 22.0 * 100; }  

Comments