0

Soruma basit geliyor: the height limit of an app, if it is targeting Windows 8.1 ürününü kaldırmak mümkün, ancak Windows 10 cihazlara da dağıtılabilir mi? Yoksa sadece projeyi Windows 10 hedefine yükseltmek ve bunun için ayrı bir paket dağıtmak için tek seçenek mi?Windows 8.1'i hedefleyen bir uygulamanın yükseklik sınırını kaldırın, ancak Windows 10'da çalışıyor mu?

İlgili bir soru: How to specify initial window size for Windows 8.1 app running on Windows 10

bir cevap ..ve "Sen zamanında 10 sdk 8.1 uygulaması pencerelerin içindeki pencerelerin parçası çağırmak için yansıma kullanabilirsiniz" öneriyor. Şey, tüm interneti tersine çevirdim ve bu mistik yöntemin normal bir açıklamasını bulamadım.

cevap

0

Eğer söz ettik yöntem kullanımı yansıması 8.1 uygulama aşağıdaki gibi Windows içinden çalışma zamanında ApplicationView.SetPreferredMinSize method çağırmaktır;

var appView = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView(); 
var setPreferredMinSizeMethod = appView.GetType().GetRuntimeMethod("SetPreferredMinSize", new Type[] { typeof(Size) }); 

if (setPreferredMinSizeMethod != null) 
{ 
    setPreferredMinSizeMethod.Invoke(appView, new object[] { new Size(300, 300) }); 
} 

Bu yaklaşımı kullanarak, tercih dk boyutunu sıfırlamak ve varsayılan 768 yüksekliğini kaldırabilirsiniz sınırı.
enter image description here

Ama bu, Windows 10, Windows 8.1 uygulamanın ApplicaitonView esas sistemi tarafından kontrol edilir unutmayın. Gerekmiyorsa, bunu yapmak için yansıma kullanmayın.

+0

Açıklama için çok teşekkür ederim! Gelecek hafta projeme girer girmez, bunu deneyeceğim ve başarılı olup olmadığımı söyleyeceğim. – serpaulius

+0

Söz vermedim, projem Yönetilen C++. Umarım bu hala mümkündür. Ayrıca, çözümünüzü Windows 8.1 için bir örnek C# projesinde kullanmayı denedim, ancak System.Type içinde "GetRuntimeMethod" tanımı böyle bir yöntem yoktur. Belirli bir şeyi içe aktardın mı? Belki bir örnek proje ekleyebilirsin? – serpaulius

+0

@serpaulius: Evet, 'GetRuntimeMethod'' System.Reflection' ad alanında. Lütfen C# kodunuzda 'System.Reflection;' kullanarak ekleyin. –

İlgili konular