Как сделать таблицу в Silverlight?

Таким образом, я хотел бы сделать видимую таблицу с границей вокруг каждой ячейки и различного цвета фона для заголовка. Я хотел бы в конечном счете вставить средства управления в это. Например, поместите текстовое поле в одном из элементов таблицы или некоторые переключатели, и т.д. Существует ли управление для этого?

Я сузил его к двум возможностям, но они оба кажутся видом "meh":

  1. используйте Управление Сеткой - мне нравится это, но есть ли способ окрасить границу на ячейке (я не нашел это),

  2. используйте Управление DataGrid - это управление является просто слишком сложным для того, в чем я нуждаюсь.

Я просто ищу таблицу стиля HTML в Silverlight, каких-либо идеях?

6
задан foreyez 19 April 2010 в 21:28
поделиться

2 ответа

Я получил довольно приличные результаты с помощью HeaderedItemsControl в Toolkit:

<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>

И, конечно, вы можете стилизовать приведенное выше, как вам нравится ...

9
ответ дан 9 December 2019 в 22:31
поделиться

Вы можете использовать сетку с элементом Border в каждой ячейке (с BorderThickness и BorderBrush \ Background) Посмотрите на этот пример (с UniformGrid):

<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>
2
ответ дан 9 December 2019 в 22:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: