我正在制作适用于Windows Phone的应用程序,我已经尝试了多年,以便在将方向更改为横向时更改主文本框的InputScope(这样键盘在横向上占用的空间更少)自动更正栏),然后再回来。
我尝试了第二个文本框并将其他文本框隐藏在方向更改上,但这并不能正常工作。 :P
尝试我可能无法使其工作,并且无法在OrientationChangedEvent参数之后找到更改InputScope值的方法,该方法在更改方向的页面元素位置方面效果很好。
我仍然很擅长使用C#和XAML开发应用程序,我希望有一个很好的简单方法来设置我的文本框的InputScope,让你有一个很棒的人可以给我看!
-EDIT:这是事件处理程序,其中的所有内容都可以正常工作,但是我尝试添加任何与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”。当方向改变时,当前在那里的东西很好地重新排列页面上的元素,我很欣赏它可能看起来不那么整洁......
答案 0 :(得分: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
事件处理程序中。