如何在Silverlight中制作列表框标题

3

我有一个Silverlight Sketch项目,使用多列列表视图来模拟数据网格。

<Style x:Key="ListBox-Sketch" TargetType="ListBox">
    <Setter Property="Padding" Value="1"/>
    <Setter Property="Foreground" Value="#FF000000"/>
    <Setter Property="HorizontalContentAlignment" Value="Left"/>
    <Setter Property="VerticalContentAlignment" Value="Top"/>
    <Setter Property="IsTabStop" Value="False"/>
    <Setter Property="BorderThickness" Value="1"/>
    <Setter Property="TabNavigation" Value="Once"/>
    <Setter Property="ItemContainerStyle" Value="{StaticResource ListBoxItem-Sketch}"/>
    <Setter Property="Background" Value="Transparent"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ListBox">
                <Grid>
                    <ScrollViewer x:Name="ScrollViewer" Style="{StaticResource ScrollViewer-Sketch2}" 
                        ScrollViewer.HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" 
                        ScrollViewer.VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}" 
                        BorderBrush="{TemplateBinding BorderBrush}" 
                        BorderThickness="0" 
                        Padding="{TemplateBinding Padding}" 
                        Background="{TemplateBinding Background}" 
                        Foreground="{TemplateBinding Foreground}">
                        <ItemsPresenter/>
                    </ScrollViewer>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Setter Property="BorderBrush" Value="{StaticResource BaseBorder-Sketch}"/>
    <Setter Property="ItemTemplate">
        <Setter.Value>
            <DataTemplate>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="20"></ColumnDefinition>
                        <ColumnDefinition Width="300"></ColumnDefinition>
                        <ColumnDefinition Width="180"></ColumnDefinition>
                    </Grid.ColumnDefinitions>
                    <TextBlock Grid.Column="0" FontFamily="{StaticResource FontFamily-Sketch}" FontSize="13" Text="{Binding Sifra}" TextWrapping="Wrap" Margin="2"/>
                    <TextBlock Grid.Column="1" FontFamily="{StaticResource FontFamily-Sketch}" FontSize="13" Text="{Binding Naziv}" TextWrapping="Wrap" Margin="2"/>
                    <TextBlock Grid.Column="2" FontFamily="{StaticResource FontFamily-Sketch}" FontSize="13" Text="{Binding Klasifikacija}" TextWrapping="Wrap" Margin="2"/>
                </Grid>
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>

除了我不知道如何为我的列表框制作漂亮的标题之外,一切都正常。


你为什么不使用DataGrid呢?这里有一个链接,可以了解如何使用Silverlight的DataGrid:http://blogs.msdn.com/b/scmorris/archive/2008/03/21/using-the-silverlight-datagrid.aspx - Judah Gabriel Himango
我更喜欢列表框,但你是对的,数据网格是正确的控件。 - zidane
1个回答

2

你已经覆盖了控件模板,只需在ItemsPresenter上方放置一个漂亮的样式化文本块即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接