如何只为少数项目列表框启用滚动条?

时间:2011-11-23 09:03:27

标签: wpf user-controls listbox wpf-controls

我有一个列表框我想要除了第一个索引所有其他项目都是可滚动的。 我这里有一个示例代码。这里我的列表框第一项表现就像列表框的标题。所以现在我不想滚动标题。项目的其余部分应该是可滚动的。

<ListBox x:Name="FieldOrderListBox" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" 
                             VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" SelectedIndex="0" IsSynchronizedWithCurrentItem="True"
                             ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Hidden" SelectionChanged="FieldOrderListBox_SelectionChanged">
    <ListBox.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="#FF479EF3"></SolidColorBrush>
    </ListBox.Resources>
    <ListBox.ItemTemplate>
        <DataTemplate x:Name="MyTemplate">
            <Grid  Margin="-5,-1,0,0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" SharedSizeGroup="FieldName" MinWidth="10" MaxWidth="300"/>
                    <ColumnDefinition Width="2"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.Style>
                    <Style TargetType="{x:Type Grid}">                                            
                        <Style.Triggers>
                            <DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}">                                                   
                                <Setter Property="TextBlock.TextAlignment" Value="Center"/>                                                                                                        <Setter Property="Background" Value="#E5E5E5"/>
                                <Setter Property="TextBlock.Foreground" Value="Black"/>
                                <Setter Property="Border.BorderThickness" Value="0.5,0.5,0,2"/>
                                <Setter Property="Border.BorderBrush" Value="Black"/>
                                <Setter Property="Border.Margin" Value="0,-1,0,0"/>
                                <Setter Property="Border.Padding" Value="5,0,0,5"/>                                                    
                            </DataTrigger>
                        </Style.Triggers>
                    </Style>
                </Grid.Style>
                <Border  BorderBrush="Black" Grid.Column="0" BorderThickness="0.5,0.0,0.5,0.5" IsHitTestVisible="False" OverridesDefaultStyle="False">
                    <TextBlock Text="{Binding Name}" Grid.Column="0" ToolTip="{Binding Name}" Margin="5,0,2,0" VerticalAlignment="Center"/>
                </Border>
                <GridSplitter Grid.Column="1" Width="2" HorizontalAlignment="Left" Background="DarkGray" Margin="-2,0,-1,0"/>
                <Border BorderBrush="Black" BorderThickness="0,0.0,0.5,0.5" Margin="-2,0,0,0" Padding="0,5,0,0" Grid.Column="2">
                    <TextBlock Text="{Binding AliasName}" Grid.Column="1" ToolTip="{Binding AliasName}" Margin="5,0,2,0" VerticalAlignment="Center" HorizontalAlignment="Stretch"/>
                </Border>
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

0 个答案:

没有答案