Hej
我有一个应用程序,我需要在横向模式下操作。问题是当我使用LiveId登录时,我必须将方向设置为Portrait,因为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
{
}
}
但没有成功。任何人都知道如何在横向模式下显示弹出窗口,即使方向发生变化也是如此。
我希望有人能提供帮助,因为几天之后,我一直无法解决问题。
答案 0 :(得分:1)
您只需使用Composit Transform,并使用center,rotate和translate进行游戏。但是,您必须使用我上面提到的代码段。因为您需要为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
{
}
}
这就是我最终的结果,它解决了我的问题。