2011-12-13 10 views
6
<ScrollViewer VerticalScrollBarVisibility="Auto" CanContentScroll="True"> 
       <StackPanel Name="basePanel" Orientation="Vertical" Height="450" /> 
      </ScrollViewer> 

यह स्टैपपैनल के लिए कोड है जो एकाधिक WrapPanels के साथ रनटाइम में भरा हुआ है। स्क्रॉल व्यूअर पैनलों के माध्यम से स्क्रॉल करता है - एक समय में - जो इसे वास्तव में असुविधाजनक बनाता है क्योंकि सभी पैनल अलग-अलग आकार के होते हैं। मैंने ScrollViewer.CanContentScroll = ScalPanel में "False" प्रॉपर्टी को स्क्रॉलव्यूयर में हटाते समय इस one को आजमाया, मदद नहीं की - स्क्रॉल बार गायब हो गया। चिकनी स्क्रॉल बार के लिए समाधान क्या है?wpf में stackpanel के भीतर चिकनी स्क्रॉल

+0

मिल जाएगा मैं सुनिश्चित नहीं हूं लेकिन हो सकता है आप StackPanel या कुछ अन्य कंटेनर वर्चुअलाइजेशन उपयोग करता है। कभी-कभी डब्ल्यूपीएफ अपने कई कंटेनर में एक डिफ़ॉल्ट "IsVirtualizing = true" प्रॉपर्टी लागू करना पसंद करता है। – Dror

उत्तर

14

लपेटें अपने StackPanel एक और पैनल

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

यहाँ एक उदाहरण है - DockPanel निकाला जा रहा है आप एक उछल पुस्तक दे देंगे, लेकिन यह आप के साथ आसान स्क्रॉलिंग व्यवहार

<ScrollViewer VerticalScrollBarVisibility="Auto" CanContentScroll="True" Height="250"> 
    <DockPanel> 
     <StackPanel Name="basePanel" Orientation="Vertical" Width="200"> 
      <Rectangle Height="75" Fill="Red" Width="200" /> 
      <Rectangle Height="50" Fill="Orange" Width="200" /> 
      <Rectangle Height="75" Fill="Yellow" Width="200" /> 
      <Rectangle Height="75" Fill="Green" Width="200" /> 
      <Rectangle Height="75" Fill="Black" Width="200" /> 
      <Rectangle Height="75" Fill="Purple" Width="200" /> 
     </StackPanel> 
    </DockPanel> 
</ScrollViewer> 
+0

मैंने डॉकपनेल के साथ स्टैकपैनल लपेट लिया लेकिन स्क्रॉल बार बिल्कुल गायब हो गया है। – Sergey

+0

@ सर्गी आपके पास 'स्टैकपैनेल' पर 'ऊंचाई' सेट है, इसलिए यह सीमित है कि स्टैकपैनल कितना बड़ा हो सकता है। 'ऊंचाई' विशेषता को अपने 'स्क्रॉल व्यूअर' पर ले जाएं और इसे काम करना चाहिए। – Rachel

+0

आप एक रॉकस्टार हैं! बहुत बहुत धन्यवाद – Sergey