2012-12-03 12 views
6

kullanarak bir olaydan sonra dinamik olarak InputScope'u değiştiriyorum Windows Phone için bir uygulama yapıyorum, oryantasyon yatay olarak değiştirildiğinde, ana metin kutusunun InputScope'unu almak için çağlar için çalışıyorum (böylece klavye, otomatik düzeltme çubuğu olmadan manzarada daha az yer kaplar ve tekrar geri döner.WP7/8 C#

İkinci bir metin kutusuyla denedim ve yönünü değiştirdikten sonra diğerlerini gizledim, ancak bu düzgün çalışmadı. : P

Bunu işe alamıyorum ve giriş yönünü, sayfanın ögeleri yönünü değiştirirken güzel bir şekilde çalışan OrientationChangedEvent argümanından sonra InputScope değerini değiştirmenin bir yolunu bulamadım.

C# ve XAML ile uygulamalar geliştirmek için hala oldukça yeni ve umarım müthiş insanların bana gösterebileceği metin kutusunun InputScope'unu ayarlamanın kolay bir yolu vardır!

-Edit: İşte olay işleyicisi, her şey içeride kesinlikle iyi orada çalışıyor, ama InputScope ile ilgisi eklemeyi deneyin herhangi bir şekilde :(

private void MainPage_OrientationChanged(object sender, OrientationChangedEventArgs e) 
    { 
     if ((e.Orientation & PageOrientation.Portrait) == (PageOrientation.Portrait)) 
     { 
      //Portrait 
      PlaceholderText.FontSize = 29.333; 
      PlaceholderText.Padding = new Thickness (0,0,0,0); 
      MainTweet.FontSize = 29.333; 
      MainTweet.Padding = new Thickness (12,8,12,8); 
      Counter.Margin = new Thickness (0,212,28,0); 
     } 
     else 
     { 
      //Landscape 
      PlaceholderText.FontSize = 23; 
      PlaceholderText.Padding = new Thickness (8,0,0,0); 
      MainTweet.FontSize = 22; 
      MainTweet.Padding = new Thickness (16,8,180,0); 
      Counter.Margin = new Thickness (0,-18,28,0); 
     } 
    } 

MainTweet.Text çalışmıyor metin kutusu olduğunu klavyenin varsayılan olarak odaklanması, sayfa yatay olarak değiştiğinde, "Search" InputScope'tan diğerine, muhtemelen "URL" ye geçmeyi çok isterim. yönlendirme değiştiğinde, bunun düzgün görünmeyebileceğini takdir ediyorum ...

+0

Nerede yardımcı olabileceğimizi görmek için bir kod gönderebilir misiniz? –

+0

Doğru geliyor! – huntie

cevap

5

Birden çok "yönlenme" durumu vardır numaralandırmada sadece - Portrait ve Landscape.

if (e.Orientation == PageOrientation.Landscape 
    || e.Orientation == PageOrientation.LandscapeRight 
    || e.Orientation == PageOrientation.LandscapeLeft) 
{ 
    InputScope inputScope = new InputScope(); 
    InputScopeName inputScopeName = new InputScopeName(); 
    inputScopeName.NameValue= InputScopeNameValue.Url; 
    inputScope.Names.Add(inputScopeName); 
    textBox1.InputScope = inputScope; 
} 

Dolayısıyla bunu MainPage_OrientationChanged olay işleyicisi içine düşeceği: ben (Windows Phone 7.5 emülatör üzerinde) kapsamını değiştirmek için çalıştı aşağıdaki.

+0

Son derece yararlı olduğunuz için TEŞEKKÜR EDERİZ! Şimdi çalışacağım ve göreceğim :) – huntie