Как изменить ориентацию приложения Surface? - PullRequest
1 голос
/ 05 мая 2010

Мне нужно повернуть пользовательский интерфейс на 180 градусов для моего наземного приложения во время выполнения, когда пользователь нажимает кнопку. Как мне это сделать?

1 Ответ

1 голос
/ 05 мая 2010

Просто примените RotateTransform к самой верхней панели (я думаю, что вы даже можете сделать это в реальном окне поверхности, если хотите) с углом 180 градусов.

<s:SurfaceWindow x:Class="SurfaceApplication1.SurfaceWindow1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:s="http://schemas.microsoft.com/surface/2008"
    Title="SurfaceApplication1">
  <Grid>
    <Grid.LayoutTransform>
      <RotateTransform x:Name="mainOrientation"/>
    </Grid.LayoutTransform>
    <s:SurfaceButton Click="btn_Click" Content="Click to rotate" />   
    ... other content here ...
   </Grid>
</s:SurfaceWindow>

И в коде позади:

private void btn_Click (object sender, RoutedEventArgs e)
{
    if (mainOrientation.Angle == 0)
        mainOrientation.Angle = 180;
    else
        mainOrientation.Angle = 0;
}

В качестве связанной темы вы также можете прослушать событие OrientationChanged , чтобы узнать, когда пользователь изменил сторону вашего приложения. Хорошая практика - перевернуть приложение на правильную сторону, когда это произойдет.

...