2011-05-13 30 views
5

Windows telefon 7'de telefon yönünü manuel olarak kilitlemek mümkün mü? Çünkü düğmeleri 'sabit bir UI ile döndürmek için ivmeölçer kullanıyorum. XAMLWP7 (Windows Phone 7) Telefon yönünü XAML veya C'ye kilitleme #

SupportedOrientations="Landscape" Orientation="LandscapeLeft" 
OrientationChanged="PhoneApplicationPage_OrientationChanged" 

yılında

Ve arkasında kod:

denedim o

private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e) 
{ 
    //Orientation locking 
    //Do nothing 
} 

Ama UI hala manzara arasına kaymaktadır ve sol manzara sağ ...

Teşekkürler.

cevap

5

LandscapeLeft ile LandScapeRight arasında geçişi engellemenin bir yolu yoktur. Bu tasarım gereğidir.

Çevrenizdeki bir işte, UIElements öğelerinizi OnOrientationChanged öğesinde manuel olarak döndürebilir/dönüştürebilirsiniz; böylece kullanıcı bir fark görmez.
Bir "arka plan" görüntüsünün, yönlendirmeden bağımsız olarak döndürülmesini sağlamak için görünmesini, ancak ardından bir pop-up gibi görünen ancak görüntünün üstünde oryantasyon değişikliklerini gösteren ayrı bir denetimin olmasını sağlamak için kullandım.

+0

Örnek kod örneğine bakın http://forums.create.msdn.com/forums/t/70673.aspx –

0

Portre modunda yönünü kilitleme MainPage() yapıcı içinde InitializeComponent(); sonra bu this.SupportedOrientations = SupportedPageOrientation.Portrait; ekleyin. Benim için iyi çalışıyor.

2

Merhaba OnOrientationChanged yöntemini geçersiz kılarak bir çözüm bulundu. Benim için çalışıyor. Bu, sistem tepsisini ve uygulama menüsünü etkilemez, ancak sayfa seçilen yönde kalır.

protected override void OnOrientationChanged(OrientationChangedEventArgs e) 
{ 
    if (e.Orientation == PageOrientation.LandscapeLeft) 
     base.OnOrientationChanged(e); 
}