2011-03-22 20 views
7

मैं कैसे सामग्री जो WPF Viewbox अंदर Stretch="UniformToFill"साथ डाल दिया है स्क्रॉल हो सकते थे?स्क्रॉल सामग्री

उदाहरण के लिए:

<Grid Height="500" Width="1000" > 
    <ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" > 
     <Viewbox Stretch="UniformToFill"> 
     ...... 

     </Viewbox> 
    </ScrollViewer> 
</Grid> 

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

मैंने ClipToBounds="False" की कोशिश की लेकिन इससे मदद नहीं मिली।

+0

स्क्रॉलव्यूअर में व्यूबॉक्स डालना बहुत असामान्य है। एक निश्चित मात्रा में फिट करने के लिए सामग्री का आकार बदलता है, दूसरा उपयोगकर्ता को उस सामग्री को देखने के लिए चारों ओर स्क्रॉल करने देता है जो अंतरिक्ष के लिए बहुत बड़ा है। शायद आपको वापस कदम उठाना चाहिए और वर्णन करना चाहिए कि आप क्या हासिल करने की कोशिश कर रहे हैं? –

+1

@ रॉबर्ट लेवी व्यूबॉक्स सामग्री में अन्य नियंत्रणों की एक अप्रत्याशित संख्या शामिल है। उस सामग्री तक पहुंचने के लिए सामग्री को ऊपर और नीचे स्केल करने के लिए व्यूबॉक्स की आवश्यकता होती है जब इसे स्केल किया जाता है। – rem

उत्तर

15

व्यूबॉक्स अपने आयामों के आधार पर अपनी सामग्री का आकार बदलता है। ScrollViewer प्रस्तुत करने के लिए अपनी सामग्री अनंत चौड़ाई/ऊंचाई देता है। इसलिए, जब आप स्क्रॉलव्यूअर के अंदर एक व्यूबॉक्स डालते हैं, तो व्यूबॉक्स सोचता है कि इसमें "दुनिया में सभी जगह" फैलाने के लिए है।

इसके अलावा, व्यूबॉक्स सामग्री को फैलाने के लिए रेंडर ट्रांसफॉर्मेशन का उपयोग करता है, जिसका अर्थ है कि आपका स्क्रॉल व्यूअर सामग्री के अंतिम आकार को कभी नहीं जानता।

अपना स्क्रॉलव्यूअर काम करने के लिए, आपको व्यूबॉक्स पर चौड़ाई/ऊंचाई डालना होगा। यह जानना आवश्यक है कि यह कितनी जगह पर कब्जा कर रहा है।

+1

धन्यवाद, सहायक उत्तर! +1 – rem

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