6

私はWindowsPhone用のアプリを作成していますが、向きを横向きに変更したときにメインテキストボックスのInputScopeを変更するように長年努力してきました(オートコレクトバーがないと、キーボードが横向きで占めるスペースが少なくなります)。 )、そしてまた戻ってきます。

2番目のテキストボックスを試し、向きを変えたときに他のテキストボックスを非表示にしましたが、これはうまく機能しませんでした。:P

これを機能させることができず、OrientationChangedEvent引数の後にInputScope値を変更する方法が見つからない可能性があるので試してください。これは、方向の周りのページの要素の位置を変更するのにうまく機能しました。

私はまだC#とXAMLを使用したアプリの開発にかなり慣れていないので、テキストボックスのInputScopeを設定する簡単な方法があり、すばらしい人の1人が見せてくれることを願っています。

-編集:これがイベントハンドラーです。その中のすべてが完全に正常に機能しますが、InputScopeに関係するものを追加しようとしても機能しません:(

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は、キーボードがデフォルトでフォーカスしているテキストボックスです。ページが横向きに変更されたときに、これを「検索」InputScopeから別の「URL」に変更できるようにしたいと思います。現在そこにあるものは、向きが変更されたときにページ上の要素をうまく再配置します、私はそれがそれほどきれいに見えないかもしれないことを感謝します...

4

1 に答える 1

5

Portrait列挙には、とだけでなく、複数の「方向」状態がありLandscapeます。以下は、スコープを変更するために機能しました(Windows Phone 7.5エミュレーターの場合)。

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

MainPage_OrientationChangedしたがって、それをイベントハンドラーにドロップします。

于 2012-12-03T20:02:16.490 に答える