Просто примените 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 , чтобы узнать, когда пользователь изменил сторону вашего приложения. Хорошая практика - перевернуть приложение на правильную сторону, когда это произойдет.