2010-04-19 71 views
6

所以我想製作一個可見的表格,每個單元格周圍都有一個邊框,並且標題的背景顏色也不同。我想最終將控制插入到此。例如,在一個表格元素或一些單選按鈕等內部放置一個文本框。是否有對此的控制?如何在Silverlight中創建表格?

我已經將範圍縮小到兩個可能性,但他們都似乎有種「咩」:

  1. 使用網格控制 - 我喜歡這一點,但有沒有辦法上色的邊界細胞(我沒有找到這個)

  2. 使用DataGrid控制 - 這個控制只是太複雜,我所需要的。

我只是在Silverlight中尋找html樣式表,有什麼想法嗎?

回答

9

我已經得到了相當不錯的結果與HeaderedItemsControl在該工具包:

<c:HeaderedItemsControl ItemsSource="{Binding rowData}" x:Name="theTable"> 
    <c:HeaderedItemsControl.Header> 
     <Border Background="HEADER BG COLOR HERE"> 
      <Grid Width="{Binding ActualWidth, ElementName=theTable}"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="*"/> 
        <ColumnDefinition Width="*"/> 
        <ColumnDefinition Width="*"/>     
       </Grid.ColumnDefinitions> 
       <TextBlock Grid.Column="0" Text="Field 1"/> 
       <TextBlock Grid.Column="1" Text="Field 2"/> 
       <TextBlock Grid.Column="2" Text="Field 3"/> 
      </Grid> 
     </Border> 
    </c:HeaderedItemsControl.Header> 
    <c:HeaderedItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="*"/> 
        <ColumnDefinition Width="*"/> 
        <ColumnDefinition Width="*"/>     
       </Grid.ColumnDefinitions> 
       <TextBlock Grid.Column="0" Text="{Binding Value1}"/> 
       <TextBlock Grid.Column="1" Text="{Binding Value2}"/> 
       <TextBlock Grid.Column="2" Text="{Binding Value3}"/> 
      </Grid> 
     </DataTemplate> 
    </c:HeaderedItemsControl.ItemTemplate> 
</c:HeaderedItemsControl> 

當然,你可以在風格上面,以你的心的內容...

+0

是否有一種方法可以使標題模板和項目模板共享同一個網格? – 2010-07-22 21:42:53

2

可以在每個細胞在這個樣本(帶UniformGrid)使用網格邊界元(帶了borderThickness和BorderBrush \背景) 看:

<UniformGrid Margin="10" Name="uniformGrid1"> 
    <Border BorderThickness="1" BorderBrush="Red"> 
     <TextBlock Text="1"></TextBlock> 
    </Border> 
    <Border BorderThickness="1" BorderBrush="Blue"> 
     <TextBlock Text="2"></TextBlock> 
    </Border> 
    <Border BorderThickness="1" BorderBrush="Black"> 
     <TextBlock Text="3"></TextBlock> 
    </Border> 
    <Border BorderThickness="1" BorderBrush="Yellow"> 
     <TextBlock Text="4"></TextBlock> 
    </Border> 
</UniformGrid> 
+0

謝謝你..雖然讓我們拭目以待如果有比在每個元素上設置邊框更有效的方法。 3年後,我希望微軟能夠提供更好的表格。 – foreyez 2010-04-19 22:39:43