如何在WP7中旋转后更新画布布局?

时间:2011-07-30 12:25:36

标签: windows-phone-7 canvas

我有一个带有2个画布的主页,如下所示:

<Canvas Name="main_canvas_color" Width="480" Height="800" Background="White" HorizontalAlignment="Center" VerticalAlignment="Center">
  <Canvas Name="main_canvas_image" Width="480" Height="800" HorizontalAlignment="Center" VerticalAlignment="Center">
   </Canvas>
 </Canvas>

第一个用颜色填充,另一个用图像填充。在PhoneApplicationPage_OrientationChanged事件中,两个画布的交换宽度和高度。如果我旋转屏幕,它工作正常,一切正确。如果我将一个Border元素作为子元素添加到main_canvas_image然后旋转屏幕,main_canvas_image不会以正确的方式更新,它会向右上角移动。如果我打开任何其他页面然后返回,则main_canvas_image会正确更新。所以似乎我必须强制布局更新,但我不知道该怎么做。我试过UpdateLayout();在PhoneApplicationPage_OrientationChanged事件中,但它不起作用。如何以正确的方式更新画布布局?

1 个答案:

答案 0 :(得分:1)

为什么要这么麻烦?更改方向时,手机会自动调整大小。没理由自己编写代码。