Как включить полосу прокрутки только для нескольких элементов listBox? - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть список, который я хочу, чтобы кроме первого индекса все остальные элементы можно было прокручивать. У меня есть пример кода здесь. Здесь мой первый элемент списка ведет себя как заголовок списка. Так что теперь я не хочу прокручивать заголовок. и остальные предметы должны быть прокручиваемыми.

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