2012-04-21 14 views
5

में हैंडल ओरिएंटेशन एक मेट्रो स्टाइल विंडोज 8 एप्लिकेशन बनाना चाहता है जो Portrait मोड में सभी सामग्री के साथ रूट Grid रूट नहीं करता है। मैं Code और Visual States में अभिविन्यास को संभालना चाहता हूं, लेकिन अब जब मैं डिवाइस घुमाता हूं, तो सभी सामग्री स्वचालित रूप से घूमती है और नई चौड़ाई और ऊंचाई भर जाती है।विंडोज 8

मैं इस रोटेशन व्यवहार को कैसे अक्षम कर सकता हूं, यानी Portrait अभिविन्यास अक्षम कर सकता हूं, लेकिन फिर भी अभिविन्यास परिवर्तनों के बारे में ईवेंट प्राप्त करने में सक्षम है?

इसके अलावा, Windows.Graphics.Display.DisplayProperties.AutoRotationPreferences

+0

हाय क्या आपको इस समस्या का कोई बेहतर समाधान मिला है? – asitis

उत्तर

0

काम करने के लिए विंडोज कहते हैं जब आप चित्र मोड में होने पर लगता नहीं है, अपने मूल तत्व है कि काउंटरों और गाया चित्र बातें

+0

लेकिन रूट तत्व नए लेआउट आकार को भरता है, यानी 'ऊंचाई' और' चौड़ाई 'को बदल दिया जाता है, और घूर्णन के बाद रूट तत्व सभी उपलब्ध स्थान नहीं लेगा और पक्षों पर भी फसल करेगा – Ku6opr

3

डबल क्लिक रहता है के लिए एक rotatetransform जोड़ें " आपके मेट्रो ऐप प्रोजेक्ट में Package.appxmanifest "फ़ाइल, आपको अपने ऐप की कॉन्फ़िगरेशन देखना चाहिए। "एप्लिकेशन यूआई" पृष्ठ में, आप बीच में "समर्थित रोटेशन" पा सकते हैं। आप जिस मोड को समर्थित करते हैं उसे जांच सकते हैं, और "पोर्ट्रेट" मोड को अनचेक कर सकते हैं। फिर आप ऐप को अब "पोर्ट्रेट" मोड इवेंट नहीं प्राप्त करेंगे।

आप अपने खुद के appx manifiest बारे में हैं, तो आप धारा के तहत निम्नलिखित ब्लॉक जोड़ सकते हैं, इस

<InitialRotationPreference> 
     <Rotation Preference="landscape" /> 
     <Rotation Preference="portraitFlipped" /> 
     <Rotation Preference="landscapeFlipped" /> 
    </InitialRotationPreference> 
+0

उत्तर के लिए धन्यवाद। समस्या यह है कि मुझे अभिविन्यास परिवर्तन घटनाओं को प्राप्त करने की आवश्यकता है, लेकिन अभिविन्यास बदलते समय लेआउट में स्वचालित परिवर्तन अक्षम करें – Ku6opr

+0

यह भी ध्यान रखें कि सिम्युलेटर इन सेटिंग्स का सम्मान नहीं करता है। आपको इन्हें वास्तविक डिवाइस पर जांचना होगा !! भगवान जानता है क्यों। उम्मीद है कि माइक्रोसॉफ्ट इसे हल करेगा। – NER1808

0

क्षमा जैसे मैं अपनी प्राथमिक प्रश्न याद किया। मुझे नहीं लगता कि आप पोर्ट्रेट मोड इवेंट के बाद मूल तत्व के "रोटेशन" को बदल सकते हैं। क्योंकि यह वास्तव में स्क्रीन के सापेक्ष घुमाया नहीं गया है, लेकिन स्क्रीन का आकार बदल गया है।

हालांकि, मुझे लगता है कि आप अभी भी चाहते हैं कि उपयोगकर्ता पोर्ट्रेट मोड ईवेंट के बाद लैंडस्केप मोड में अपने ऐप को देखना चाहें। आप कथित रोटेशन का सामना कर सकते हैं। आप किसी भी पूर्वनिर्धारित आकार के साथ किसी अन्य उपयोगकर्ता नियंत्रण में व्यवसाय तर्क डाल सकते हैं। इस उपयोगकर्ता नियंत्रण को रूट पेज में रखें। जब आपको पोर्ट्रेट मोड इवेंट प्राप्त होता है, तो आप उपयोगकर्ता नियंत्रण ऊंचाई के लिए पृष्ठ वास्तविक WIDth असाइन करते हैं, पृष्ठ नियंत्रण वास्तविकता उपयोगकर्ता नियंत्रण के लिए चौड़ाई, उपयोगकर्ता को 9 0 डिग्री के एक रेंडर ट्रांसफॉर्म को नियंत्रित करते हैं और ट्रांसफर सेंटर x = ऊंचाई * 0.707/चौड़ाई, वाई = 0.5 प्रस्तुत करते हैं, तो उपयोगकर्ता नियंत्रण सिर्फ लैंडस्केप मोड स्थिति को संरेखित करना चाहिए।

+0

मैंने पहले इस तरह के दृष्टिकोण के बारे में सोचा था लेकिन घूर्णन के बाद मुझे पक्षों पर एक फसल का नियंत्रण मिलता है। शायद कुछ कामकाज मौजूद है लेकिन लघु शोध मुझे परिणाम नहीं देता है। – Ku6opr