0

我喜欢在 ListBox 控件中的项目之间放置分隔线。使用该分隔线,我想让 ListBox 看起来像一列多行的表。

4

4 回答 4

2
   <DataTemplate>
                <Border BorderThickness="0,10,0,10" BorderBrush="Black">
                        <Grid Width="auto" HorizontalAlignment="Stretch" >
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="auto" />
                                <ColumnDefinition Width="*" />
                                <ColumnDefinition Width="48" />
                            </Grid.ColumnDefinitions>
                            <TextBlock VerticalAlignment="Center" FontSize="36" FontWeight="Bold" Grid.Column="0" Foreground="Black" Text="{Binding Path=Title}" Name="title"/>
                            <TextBlock VerticalAlignment="Center" HorizontalAlignment="Right" Grid.Column="1" Foreground="Black" Text="{Binding Path=Location}" Name="location"/>
                            <Image VerticalAlignment="Center" Grid.Column="2" Width="48" Height="48" Source="ApplicationIcon.jpg"/>
                        </Grid>
           </Border>
                    </DataTemplate>
于 2012-07-31T09:07:30.743 回答
1

一种基本方法是为列表框项定义 CSS 样式:

<style type='text/css'>
option { border-top: solid 1px gray; }
</style>

...

<asp:ListBox ...></asp:ListBox>

这将在每个列表框元素的底部添加一个灰色边框。

注意:这将适用于该页面上的所有列表框。如果您仅对某些列表框需要该样式,则将 CSS 类应用于列表框并将 CSS 更改为仅应用于那些:

<style type='text/css'>
select.table option { border-top: solid 1px gray; }
</style>

...

<asp:ListBox CssClass="table" ...></asp:ListBox>
于 2012-07-31T08:49:38.663 回答
0

设置属性MultiColumn=true,然后:

listBox1.Items.AddRange(new object[]
    {
        "Item 1, column 1",
        "Item 2, column 1",
        "Item 3, column 1",
        "Item 4, column 1",
        "Item 5, column 1",
        "Item 1, column 2",
        "Item 2, column 2",
        "Item 3, column 2"
   });

请参阅MSDN

于 2012-07-31T08:38:55.083 回答
0

受到 NestorArturo 的启发,发现了边境管制。

将 ItemTemplate 内容包装在 Border 控件中并指定 BorderThickness 和 BorderBrush 非常容易。我是这样走的,因为它不需要在 ItemTemplate 中更改我的 Grid。

边境控制在这里描述:http ://www.silverlightshow.net/items/Using-the-Border-control-in-Silverlight-2-Beta-1-.aspx 。

于 2012-07-31T08:47:05.623 回答