6

我正在为 Windows Phone 制作一个应用程序,我一直在尝试让主文本框的 InputScope 在方向更改为横向时更改(以便键盘在没有自动更正栏的情况下占用更少的横向空间),然后再次返回。

我尝试使用第二个文本框并在方向更改时隐藏其他文本框,但这并没有很好地工作。:P

尽我所能尝试,我无法让它工作,并且找不到在 OrientationChangedEvent 参数之后更改 InputScope 值的方法,该参数在改变页面元素围绕方向的位置方面效果很好。

我对使用 C# 和 XAML 开发应用程序还很陌生,我希望有一种很好的简单方法来设置我的文本框的 InputScope,你们中的一个很棒的人可以告诉我!

-编辑:这是事件处理程序,里面的所有东西都工作得很好,但是我尝试添加与 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 是键盘默认关注的文本框,当页面更改为横向时,我希望能够将其从“搜索”输入范围更改为另一个,可能是“URL”。当方向改变时,当前在那里的东西很好地重新排列页面上的元素,我很欣赏它可能看起来不那么整洁......

4

1 回答 1

5

枚举中有多个“方向”状态——不仅仅是Portraitand 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 回答