使弹出框出现在横向模式
本文关键字:横向 模式 | 更新日期: 2023-09-27 17:50:07
我有一个应用程序,我需要在横向模式操作。问题是当我登录LiveId时,我必须将方向设置为纵向,因为LiveId只支持纵向模式。
我的问题是,我想在横向模式下显示弹出窗口,即使系统是在纵向模式下。
我已经尝试过旋转,并在旋转发生时做一些代码:
private void PhoneApplicationPage_OrientationChanged(object sender, OrientationChangedEventArgs e)
{
// Switch the placement of the buttons based on an orientation change.
if ((e.Orientation & PageOrientation.Portrait) == (PageOrientation.Portrait))
{
}
// If not in portrait, move buttonList content to visible row and column.
else
{
}
}
但是没有成功。有人知道如何在横向模式下显示弹出窗口吗,即使方向改变了。
我希望有人能帮助我,因为已经好几天了,我还是没能解决这个问题
你只需要使用合成变换,并播放中心,旋转和翻译。但是,您必须使用我上面的代码片段。因为你需要同时为landscapeLeft和LandscapeRight编写代码
if ((e.Orientation & PageOrientation.LandscapeLeft) == PageOrientation.LandscapeLeft)
{
rotate = false;
}
else if ((e.Orientation & PageOrientation.LandscapeRight) == PageOrientation.LandscapeRight)
{
rotate = true;
}
if ((e.Orientation & PageOrientation.Portrait) == (PageOrientation.Portrait))
{
if (!rotate) {
CompositeTransform Trans = new CompositeTransform();
Trans.Rotation = 90;
Trans.TranslateY=-200;
Trans.TranslateX = -120;
Trans.CenterY = 400;
Trans.CenterX = 200;
popup.RenderTransform = Trans;
}
else
{
CompositeTransform Trans = new CompositeTransform();
Trans.Rotation = -90;
Trans.TranslateY = 200;
Trans.TranslateX = 200;
Trans.CenterY = 400;
Trans.CenterX = 200;
popup.RenderTransform = Trans;
}
/*RotateTransform myRotateTransform = new RotateTransform();
if (rotate)
{
myRotateTransform.Angle = 90;
myRotateTransform.CenterY = popup.ActualHeight / 2;
myRotateTransform.CenterX = popup.ActualWidth / 2;
popup.RenderTransform = myRotateTransform;
}*/
}
// If not in portrait, move buttonList content to visible row and column.
else
{
}
}
这就是我最后得到的,它解决了我的问题。