2012-12-03 13 views
6

Realizzo un'app per Windows Phone, ho cercato per anni di ottenere l'InputScope della casella di testo principale da modificare quando l'orientamento è cambiato in orizzontale (in modo che la tastiera occupi meno spazio in orizzontale senza la barra di correzione automatica) e di nuovo indietro.WP7/8 cambiando InputScope dinamicamente dopo un evento utilizzando C#

Ho sperimentato una seconda casella di testo e nascosto gli altri su un cambio di orientamento, ma ciò non ha funzionato correttamente. : P

Per quanto possibile, non riesco a far funzionare tutto questo e non riesco a trovare alcun modo per modificare il valore di InputScope dopo l'argomento OrientationChangedEvent, che ha funzionato correttamente nel modificare la posizione degli elementi della pagina attorno agli orientamenti.

Sono ancora abbastanza nuovo nello sviluppo di app con C# e XAML e spero che ci sia un modo semplice per impostare l'InputScope della mia casella di testo che uno di voi persone fantastiche potrebbe mostrarmi!

-edit: Ecco il gestore di eventi, tutto quello che all'interno vi funziona assolutamente bene, ma qualsiasi modo cerco di aggiungere nulla a che fare con InputScope non funziona :(

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 è la casella di testo che la tastiera si sta concentrando per impostazione predefinita, quando la pagina viene modificata in orizzontale mi piacerebbe essere in grado di cambiare questo da InputScope "Cerca" a un altro, probabilmente "URL". Il materiale attualmente in là riorganizza gli elementi sulla pagina quando l'orientamento è cambiato, apprezzo che potrebbe non sembrare così pulito ...

+0

puoi pubblicare un codice per vedere dove possiamo aiutarti? –

+0

Stai arrivando! – huntie

risposta

5

Ci sono più "orientamento" stat nell'enumerazione - non solo Portrait e Landscape. Di seguito ha lavorato per me di cambiare il campo di applicazione (su Windows Phone 7.5 emulatore):

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; 
} 

quindi faresti cadere dentro il vostro gestore MainPage_OrientationChanged eventi.

+0

GRAZIE per essere stato estremamente utile! Ora lavorerò e vedrò :) – huntie

Problemi correlati