2011-09-04 41 views
0

在我的WP7應用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

也許你應該接受一個Page的OrientationChanged事件?

更新

我覺得你的控件填充整個空間可用。如果你改變方向,那麼空間的大小會發生變化 - 因此你的控制不再是方塊。這一事實表明,橢圓將其形狀從圓形更改爲橢圓形,因爲您的橢圓形也試圖填充所有可用空間。爲了避免這種情況,您可以將橢圓的Stretch屬性設置爲Uniform。這應該可以解決您的問題。

+0

但是默認情況下,LayoutRoot網格應該將水平和垂直對齊設置爲伸展,邊距爲0,那麼LayoutRoot網格不應該總是增長到其容器的大小? – Jeremy

+0

我已經更新了我的答案 - 現在應該檢查它。 – ArturS