2012-05-31 6 views
34

मैं स्क्रीन रिज़ॉल्यूशन पता करने के लिए इतना है कि मैं Windows 8 ऐप्स में संकल्प के अनुसार एक तत्व की ऊंचाई सेट कर सकते हैं चाहता हूँ।स्क्रीन के रिज़ॉल्यूशन को कैसे प्राप्त करें? एक WinRT ऐप के लिए?

उत्तर

79

कैसे इस बारे में?

var bounds = Window.Current.Bounds; 

double height = bounds.Height; 

double width = bounds.Width; 
+0

यह भी काम करता है प्रदान कर सकते हैं। धन्यवाद कृष्ण! :) –

+4

इसका उपयोग करें। मान लें कि आप प्राथमिक स्क्रीन में हैं जैसा एमडी के उत्तर –

+0

गुड प्वाइंट @ रॉबर्टलेवी में किया गया है। –

2

आप XAML का उपयोग कर रहे हैं? यदि ऐसा है तो इससे कोई फर्क नहीं पड़ता। ग्रिड नियंत्रण का प्रयोग करें। यह सभी उपलब्ध स्थान भर जाएगा। Jerry's blog पढ़ें कि आप WinRT विकास के लिए xaml का उपयोग क्यों करना चाहेंगे।

+0

मेरे पास दो पंक्तियां हैं, एक ऊंचाई 70 के साथ और दूसरा * के साथ। मेरे पास एक टेक्स्टबॉक्स है जो दूसरी पंक्ति में है। मैं संकल्प के अनुसार अपनी ऊंचाई को बदलने के लिए टेक्स्टबॉक्स चाहता हूं। डिफ़ॉल्ट रूप से –

+1

टेक्स्टबॉक्स शैली पूरे क्षेत्र को भर देगी। यह सिल्वरलाइट शैली है, लेकिन अभी भी लागू करना चाहिए, या आप इस शैली http://msdn.microsoft.com/en-us/library/cc645061%28v=VS.95%29.aspx –

3

जाहिरा तौर पर मैं अभी तक पदों के लिए उत्तर करने के लिए पर्याप्त प्रतिनिधि नहीं है, लेकिन @ कृष्ण के जवाब के संबंध में, यह ध्यान देने योग्य हो सकता है कि उनके समाधान की आवश्यकता है: एक मुद्दा

using Windows.UI.Xaml; 

शायद नहीं आप में से अधिकांश के लिए, लेकिन मेरे मामले में (एक आयातित लाइब्रेरी से एप निष्पादित करने के संकल्प को पकड़ने की कोशिश कर रहा है), यह डिफ़ॉल्ट रूप से वहां नहीं था।

आशा है कि यह किसी और में मदद करता है ...

+0

कोई Windows.UI.XAML पैकेज उपलब्ध नहीं है। मुझे इसे कैसे प्रयोग में लाना है ? –

6

शायद DirectX सक्षम ऐप्स के लिए सबसे अच्छा विकल्प है, तथापि, मेट्रो क्षुधा के अन्य सभी प्रकार के लिए लागू होता है:

http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/07/24/get-screen-resolution-in-windows-8-metro-style-application.aspx

पी.एस. क्या, स्क्रीन रिज़ॉल्यूशन निर्धारित करने के लिए विंडो आकार प्राप्त करना? स्नैप/भरे मोड के बारे में क्या? यह दुनिया इतना टूट गया है: -/

+0

स्नैप/भरे मोड में ऊंचाई नहीं बदलती है;) –

+0

और धन्यवाद। वैसे भी, मैंने इसे ऊंचाई निर्धारित किए बिना काम करने के लिए बनाया है। :) –

13

वर्तमान विंडो की सीमा से प्राप्त करना आसान है। लेकिन कहें कि क्या आप बड़ी स्क्रीन के लिए एक बड़ा फ़ॉन्ट आकार सेट करना चाहते हैं (संकल्प 10 "डिवाइस के समान है, लेकिन स्क्रीन 27 है"), यह मदद नहीं करेगा। देखें Scaling to different screens मैं निम्नलिखित विधि का इस्तेमाल किया स्क्रीन आकार & परिवर्तन पाठ खंड फ़ॉन्ट शैली उचित रूप से पता लगाने के लिए।

  void detectScreenType() 
    { 
     double dpi = DisplayProperties.LogicalDpi; 
     var bounds = Window.Current.Bounds; 
     double h; 
     switch (ApplicationView.Value) 
     { 
      case ApplicationViewState.Filled: 
       h = bounds.Height; 
       break; 

      case ApplicationViewState.FullScreenLandscape: 
       h = bounds.Height; 
       break; 

      case ApplicationViewState.Snapped: 
       h = bounds.Height; 
       break; 

      case ApplicationViewState.FullScreenPortrait: 
       h = bounds.Width; 
       break; 

      default: 
       return; 
     } 
     double inches = h/dpi ; 
     string screenType = "Slate"; 
     if (inches < 10) 
     { 
      screenType = "Slate"; 
     } else if (inches < 14) { 
      screenType = "WorkHorsePC"; 
     } 
     else 
     { 
      screenType = "FamilyHub"; 
     } 
     ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; 
     localSettings.Values["screenType"] = screenType; 
    } 
+0

यह पूर्ण स्क्रीन मोड में चलने तक विंडो का आकार देता है, पूर्ण स्क्रीन आकार नहीं। – cyanide

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

  • कोई संबंधित समस्या नहीं^_^