2008-12-04 13 views
11

सामग्री को विकृत न करने के लिए मेरे पास Stretch=Uniform वाला व्यूबॉक्स है। हालांकि, जब फ्रेम विंडो सामग्री से अधिक या लंबा है, तो व्यूबॉक्स सामग्री हमेशा केंद्रित होती है।एक WPF व्यूबॉक्स में सामग्री संरेखित

मुझे व्यूबॉक्स पर कोई सामग्री संरेखण विकल्प नहीं दिख रहा है। क्या ऐसा करने का कोई तरीका है?

उत्तर

19

VerticalAlignment और HorizontalAlignment की कोशिश करो। वर्टिकल एलाइनमेंट = "टॉप" क्षैतिज एलाइनमेंट = "वामपंथी" आपके व्यूबॉक्स पर इसे ऊपर और बाएं तरफ लगाया जाएगा।

<Grid> 
    <Viewbox VerticalAlignment="Top" HorizontalAlignment="Left"> 

आप इसे पूरी तरह भरने (लेकिन यह एक समान रखने के लिए) आप खिंचाव = "UniformToFill" का उपयोग कर सकते हैं।

1

MSDN के अनुसार व्यूबॉक्स का उपयोग बाल तत्वों को फैलाने के लिए किया जाता है। चूंकि बाल तत्वों को बढ़ाया जाएगा, इसलिए आपको बच्चों के सामग्री संरेखण को सेट करना होगा।

आप Viewbox के बारे में अधिक जानकारी के लिए इस को देखने के लिए चाहते हो सकता है: How do I keep aspect ratio on scalable, scrollable content in WPF?

+2

मैं बच्चे ऑब्जेक्ट पर होरिज़ोंटल एलाइनमेंट और वर्टिकल एलाइनमेंट सेट कर सकता हूं और यह तब भी केंद्रित है जब व्यूबॉक्स इसे स्केल करता है। –

+1

मुझे क्या लगता है कि आप व्यूबॉक्स _itself_ पर संरेखण सेट करना चाहते हैं (जैसे जॉन जेड के उत्तर में)। आश्चर्यजनक रूप से पर्याप्त सामग्री को समान रूप से संरेखित करने का कारण बनता है। यह एक अजीब बात है, क्योंकि यह स्वाभाविक रूप से _its_ कंटेनर में व्यूबॉक्स को संरेखित करता है। –

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