【问题标题】:WP7 max circle size for orientationWP7 方向的最大圆尺寸
【发布时间】:2011-09-04 22:24:20
【问题描述】:

在我的 WP7 应用程序中,我有一个用户控件,在布局根目录中有一个网格和一个椭圆:

<Grid x:Name="LayoutRoot">
    <Grid x:Name="grdCircle">
        <Ellipse x:Name="elCircle" Stroke="#FFB91515" Margin="5"/>
    </Grid>
</Grid>

我将它放在 WP7 应用程序的主页上,它在横向模式下看起来不错,但是当我切换到纵向时,宽度会扩大而高度会收缩,所以它不再是一个圆圈。我想要的是让圆圈成为无论方向如何都可以达到的最大尺寸,并且仍然保持圆圈。

我尝试将 SizeChanged 事件放在 LayoutRoot 上,并将 grdCircle 宽度/高度设置为更小的值 - LayoutRoot 实际宽度或 LayoutRoot 实际高度,但一旦我这样做,更改方向不会触发LayoutRoot 的 SizeChanged 事件不再发生,因为 LayoutRoot 也变小了。如何确保我的椭圆始终是圆形并根据方向增大/缩小?

编辑: 默认情况下,LayoutRoot 网格应该将水平和垂直对齐设置为以 0 的边距拉伸,那么 LayoutRoot 网格不应该总是增长到其容器的大小吗?

【问题讨论】:

    标签: wpf windows-phone-7


    【解决方案1】:

    也许您应该利用页面的 OrientationChanged 事件?

    更新

    我认为您的控件正在填充所有可用空间。如果你改变方向,那么空间的大小就会改变——结果你的控件就不再是正方形了。这一事实暗示椭圆将其形状从圆形变为椭圆,因为您的椭圆也试图填充所有可用空间。为避免这种情况,您可以将椭圆的 Stretch 属性设置为 Uniform。这应该可以解决您的问题。

    【讨论】:

    • 但是默认情况下,LayoutRoot 网格的水平和垂直对齐方式应该设置为以 0 的边距拉伸,所以 LayoutRoot 网格不应该总是增长到其容器的大小吗?
    猜你喜欢
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    相关资源
    最近更新 更多