如何在锁定方向的Windows Phone 8页面中更改一个组件的方向

时间:2014-12-29 13:37:02

标签: c# windows-phone-8 windows-phone-toolkit

我正在使用 Windows Phone 8 / 8.1 C#/ XAML .NET 4.5应用程序,我想知道如何更改页面上一个控件/项目的方向(将其旋转90度)。

我的肖像页面上有一个webBrowser(保持锁定在该方向上),并且webbrowser需要处于横向(并且不会旋转)。

如何将网页浏览器设置为旋转90度并保持这种状态?

1 个答案:

答案 0 :(得分:0)

所以,我已经找到了自己做的一种方法。

我将把答案作为社区维基,以便后来的任何人都可以编辑并添加更多选项来执行此操作。

旋转变换

其中一个选项是旋转元素。

这是通过轮换转换完成的(来自this ans this问题的答案)。

可以在后面的代码中完成:

//Create a transformation
RotateTransform rt = new RotateTransform();
//and set the rotation angle
rt.Angle = 90; //number of degrees to rotate clockwise
               //for counterclockwise rotation use negative number

//default rotation is around top left corner of the control,
//but you sometimes want to rotate around the center of the control
//to do that, you need to set the RenderTransFormOrigin
//of the item you're going to rotate
//I did not test this approach, maybe You're going to need to use actual coordinates
//so this bit is for information purposes only
controlToRotate.RenderTransformOrigin = new Point(0.5,0.5);

//the name of the control is controlToRotate in this instance
controlToRotate.RenderTransform = rt;

或者在XAML中:

  • 此实例中的浏览器取自我自己的代码,并且所有内容都已设置,以便项目旋转并获取分配给它的完整位置

  • 浏览器位于网格中,动态定位,网格命名为我只能访问它

  • 浏览器需要指定宽度和高度,在这种情况下,我从网格的宽度和高度中取出它,否则它会以某种方式自动设置,结果非常小某种方式

  • 垂直和水平对齐设置为居中,以便生成的旋转也居中,否则不是(动态布局)

代码:

<Grid x:Name="ContentPanel">            
  <phone:WebBrowser x:Name="controlToRotate"
                    VerticalAlignment="Center"
                    HorizontalAlignment="Center"
                    RenderTransformOrigin=".5, .5"
                    Width="{Binding ElementName=ContentPanel, Path=ActualHeight}"
                    Height="{Binding ElementName=ContentPanel, Path=ActualWidth}">
    <phone:WebBrowser.RenderTransform>
      <RotateTransform Angle="90"/>
    </phone:WebBrowser.RenderTransform>
  </phone:WebBrowser>
</Grid>