2014-09-26 127 views
4

有人可以解釋Xamarin.Forms中的GridLayout引用嗎?Xamarin.Forms GridLayout

在FormsGallery上使用示例,在這裏也可以看到http://iosapi.xamarin.com/?link=T%3aXamarin.Forms.Grid(也有圖片) 我試圖解決這個問題,但是我的試驗和錯誤並不是非常成功,只是非常耗時。

望着電網的代碼如下的第一行

grid.Children.Add(new Label 
    { 
     Text = "Grid", 
     Font = Font.BoldSystemFontOfSize(50), 
     HorizontalOptions = LayoutOptions.Center 
    }, 0, 3, 0, 1); 

在我看來,就好像第一個0是指X位,3指列跨度,下一個0是指到y位置,一個是指行跨度。但使用它作爲參考,並試圖添加其他行和列它不起作用。如果他們的樣本包含一些評論,那將是非常好的,但是因爲他們不能告訴我GridLayout參考是如何工作的?

乾杯

回答

4

它就像添加(查看視圖,詮釋左,右INT,INT頂部,底部INT)

這裏Understanding Grid Layout

+0

謝謝,正是我所需要的。我確實嘗試過搜索,但猜測我真的不應該這樣做,當真的很累! – user1667474 2014-09-27 00:14:19

3

我想你會發現電網更容易瞭解你是否在XAML中創建它。在這種情況下,你有行和列,並且設置非常簡單。

  <Grid> 
       <Grid.RowDefinitions> 
       <RowDefinition Height="3*" /> 
       <RowDefinition Height="4*" /> 
       </Grid.RowDefinitions> 

      <Grid> 
       <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*" /> 
         <ColumnDefinition Width="*" /> 
       </Grid.ColumnDefinitions> 
      </Grid> 

這定義了一個兩行的網格。第一行是第二行的3/4。它也有兩個相等的列。

現在,您可以添加到單元網格中,如

<Label Text="Hi!" Grid.Row = 1 Grid.Column = 0 /> 

這將使標籤的第二行,第一列英寸

這與Silverlight和WPF中的操作完全相同。

+0

謝謝Jesse的回答。由於我對Xamarin(包括C#)的所有東西都是新手,我不知道Silverlight或WPF。我發現大多數教程和示例都針對有經驗的人,對沒有任何人的人來說並不多。例如,如果FormsGallery包含評論以幫助像我這樣的人,那麼FormsGallery會很棒。一旦我掌握了這一切,我會給Xaml一個去。乾杯 – user1667474 2014-09-27 00:13:44

+0

這是一個很好的觀點。很快,Charles Petzold爲Xamarin寫的關於XAML的書將會出來,這將是一個很大的幫助。我確實在Pluralsight上有一門叫做C#From Scratch的課程,你可能想看看。 – 2014-09-28 10:25:59

+0

謝謝傑西我一定會檢查兩個出來(只要這個任務完成!!) – user1667474 2014-09-29 11:11:36

5

我實際上通過Miha Markic找到了一個有點誤導的答案,不是因爲他給出的答案是不正確的,而是因爲Xamarin對這些參數做了什麼不明確的名稱。

Add(View view, int left, int right, int top, int bottom) 

left = column, 
right = used to work out column span ie. right - left 
top = row, 
bottom = used to work out row span ie. bottom - top 

這意味着,如果你想在第二列跨越兩個項目,你必須這樣做:當你需要把3,以跨越兩個

Add(view, 1, 3, 0, 1) 

這是一個有點怪異列。

(我最初在the xamarin forum找到答案)