使用Windows手机,当设备进入横向模式时,是否有可以注册的事件?
我问这个的原因是因为我们有一个带输入框的视图。在横向模式下,TextBox
被键盘部分阻挡。因此,我认为可能必须在横向模式下隐藏页面上的一些其他信息(例如,隐藏页面标题等)。
以下是一个简单的例子。 左:键盘显示前;右:显示键盘后。
我发布了另一个与此相关的问题,就我而言,它有一个更好的解决方案:
Why isn't the TextBox inside ContentDialog automatically scroll above keyboard
但无论如何,这里是方向更改事件的完整代码:
// Define this in the class
private SimpleOrientationSensor _simpleorientation;
// Put hits in the Constructor
_simpleorientation = SimpleOrientationSensor.GetDefault();
if (_simpleorientation != null)
{
_simpleorientation.OrientationChanged += new TypedEventHandler<SimpleOrientationSensor, SimpleOrientationSensorOrientationChangedEventArgs>(OrientationChanged);
}
// Event function
private void OrientationChanged(object sender, SimpleOrientationSensorOrientationChangedEventArgs e)
{
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
// ...
});
}
答案 0 :(得分:2)
您最好的选择是描述Windows.Current.SizeChanged
事件并测试宽度是否超过高度。还有一个传感器,但是有点问题,请看http://www.jayway.com/2014/10/06/detecting-orientation-in-universal-apps-windows-phone-8-1/。
<强>的.xaml 强>
<ContentDialog
x:Class="App1.ContentDialog1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
SizeChanged="SizeChangedEvent">
<--! Other Code -->
</ContentDialog>
<强>的.cs 强>
private void SizeChangedEvent(object sender, SizeChangedEventArgs e)
{
}