2010-04-08 21 views
18

मैं WP7 पर प्रोग्राम रेज़ोल्यूशन को प्रोग्राम रिज़ॉल्यूशन कैसे प्राप्त करूं? यहां लिंक का एक समूह है जो डेस्कटॉप डब्ल्यूपीएफ और सिल्वरलाइट में एक ही काम करता है, लेकिन उनमें से कोई भी फोन एसडीके में नहीं है।विंडोज फोन 7 श्रृंखला पर स्क्रीन आकार कैसे प्राप्त करें?

कोई विचार?

http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/thread/f0639904-a368-44db-9ddd-efcaf8fc736e
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6b6b832f-0dfd-428c-84cd-b1b9e7f236cf
How can I get the active screen dimensions?
http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/thread/f0639904-a368-44db-9ddd-efcaf8fc736e

+0

आपके पास उन फ़ोनों में से एक है? वाह - मुझे नहीं पता था कि वे अभी तक उनके साथ विकसित होने के लिए उपलब्ध थे। –

+0

नहीं, केवल एमुलेटर :( –

उत्तर

14

यह Application.Current.RootVisual.RenderSize तरह लग रहा है कि आप इस जानकारी दे देंगे।

+0

यह निश्चित रूप से काम करता है, धन्यवाद। –

+0

विंडोज फोन 7 (480 × 800) और (320 × 480) के लिए दो संकल्प होने के बावजूद यह जानना आसान है कि उनके पास एक ही पहलू अनुपात नहीं है, जिसका मैं अनुमान लगा रहा हूं कि इसका कारण है सवाल। – RoguePlanetoid

+7

यदि आप ऐसा करने की कोशिश कर रहे हैं तो कृपया नीचे ल्यूक Puplett का जवाब देखें। RootVisual.RenderSize आपको वही चीज़ देने की संभावना नहीं है जो आप चाहते हैं। – jeffa00

1

पूरे स्क्रीन:

(App.Current.RootVisual as FrameworkElement).ActualHeight 
(App.Current.RootVisual as FrameworkElement).ActualWidth 

वर्तमान पृष्ठ:

आप दिखाई आकार (खाते में AppBar/SystemTray लेने) तो बस बंद पेज के बजाय इसके लिए पूछना जानना चाहते हैं।

66

मैं इस का उपयोग करें:

this.ScreenWidth = System.Windows.Application.Current.Host.Content.ActualWidth; 
this.ScreenHeight = System.Windows.Application.Current.Host.Content.ActualHeight; 

कई तरीके एक ऐप्लिकेशन त्वचा के लिए। यदि यह एक्सएएमएल के लिए है, तो आप लेआउट रूट के गुणों से जुड़ सकते हैं।

Height="{Binding ElementName=LayoutRoot,Path=ActualHeight}" 
+2

यह बेहतर जवाब है। क्वेटज़्लकोटल ने बताया कि स्वीकार किए गए उत्तर में समस्याएं हैं। – jeffa00

+0

यह उत्तर बेहतर है। इस विधि का उपयोग करके आप कन्स्ट्रक्टर में स्क्रीन आयाम भी प्राप्त कर सकते हैं। स्वीकृत उत्तर का उपयोग करके मुझे एक शून्य संदर्भ अपवाद मिला। – Daan

+0

और यह WP8 पर भी काम करता है। – KristianB

8

मैं नीचे/वोट दें अभी तक (वास्तव में, अब मैं कर सकते हैं और मैं वैसा ही किया) नहीं कर सकते, लेकिन मुझे लगता है कि Application.Current.Host सहित "ल्यूक Puplett" s जवाब का कहना है करना चाहते हैं सामग्री एक सही है, न कि "एंड्रियास सौदेमोंट" जो रेंडरसाइज की सलाह देता है।

मैं ऐसे नामों का उपयोग करूंगा जो आमतौर पर एमएसडीएन से ट्यूटोरियल या नमूना अनुप्रयोगों में उपयोग किए जाते हैं।

मैं कहता हूं कि होस्ट.क्यूरेंट अधिक पर्याप्त है, क्योंकि आवेदन की बहुत शुरुआत पर, खासकर WP7 पर (मुझे नहीं पता कि यह पीसी पर "नियमित" SL3/SL4 पर कैसे है) - यानी, उदाहरण के लिए, पहले पृष्ठ के कन्स्ट्रक्टर में - रेंडरसाइज प्रॉपर्टी सही ढंग से सेट नहीं है, क्योंकि एप्लिकेशन के "रूट विज़ुअल" का निर्माण किया जा रहा है और अभी तक "App.xaml.cs" में असाइन नहीं किया गया है। कम से कम उस बिंदु पर, रेंडरसाइज = आकार {0,0}

दूसरी ओर, यदि केवल ऐप सही ढंग से शुरू होता है, तो होस्ट.कंटेंट कुछ फोनफ्रेम पर सेट है, जो सही ढंग से पूर्ण-स्क्रीन आकार का है और वास्तविक स्क्रीन स्थिति में घुमाया। मुझे लगता है कि होता है कि बहुत से शुरू यह शुरू करने स्प्लैश स्क्रीन है (खाली या JPG फ़ाइल से स्थिर)

4

आप एक XNA खेल के भीतर से प्रदर्शन आकार का उपयोग करना चाहते हैं, इस का उपयोग करें:

graphics.GraphicsDevice.DisplayMode.Width 

और

graphics.GraphicsDevice.DisplayMode.Height 

जहां ग्राफिक्स वर्तमान खेल के GraphicDeviceManager है!

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