在我的WP7应用程序中,我在布局根目录中有一个用户控件,一个网格和一个椭圆:
<Grid x:Name="LayoutRoot">
<Grid x:Name="grdCircle">
<Ellipse x:Name="elCircle" Stroke="#FFB91515" Margin="5"/>
</Grid>
</Grid>
我将它放在WP7应用程序的主页面上,它在横向模式下看起来很好,但是当我切换到纵向时,宽度会扩大,高度会收缩,所以它不再是圆形。我想要的是圆圈是最大尺寸,无论方向如何,仍然保持圆形。
我尝试在LayoutRoot上放置SizeChanged事件,并将grdCircle宽度/高度设置为更小的值 - LayoutRoot实际宽度或LayoutRoot实际高度,但是一旦我这样做,更改方向就不会触发LayoutRoot的SizeChanged事件因为LayoutRoot也变小了。如何确保椭圆始终为圆形并根据方向增大/缩小?
修改 默认情况下,LayoutRoot网格应该将水平和垂直对齐设置为拉伸,边距为0,那么LayoutRoot网格是否应该总是增长到其容器的大小?
答案 0 :(得分:0)
也许你应该采取Page的一个OrientationChanged事件的冒险行为?
<强>更新强>
我认为您的控件正在填充所有可用空间。如果你改变方向,那么空间量就会改变 - 因此你的控制不再是方格。这个事实暗示椭圆的形状从圆形变为椭圆形,因为椭圆也试图填充所有可用空间。为避免这种情况,您可以将椭圆的“拉伸”属性设置为“均匀”。这应该可以解决您的问题。