使弹出框出现在横向模式

本文关键字:横向 模式 | 更新日期: 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
        {
        }
  }

这就是我最后得到的,它解决了我的问题。