列表框列具有滚动查看器

时间:2017-08-10 21:15:55

标签: wpf listbox scrollviewer

在我的WPF应用程序中,我有一个带有网格的ListBox,其中一个网格列包含名称,这些名称可能很长。是否可以将滚动条或滚动查看器限制为仅限于第1列(因为它有名称,它们的宽度可能不同)和休息列表框将有一个共同的scrollviewer。 它可以为整个ListBox设置两个ScrollViewer,还有一个专用于具有名称的第1列。这可能吗?

我的xaml代码

<ListBox BorderThickness="0" x:Name="newListBox">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid Margin="0,2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="30" />
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="130" />
                     </Grid.ColumnDefinitions>
                       <TextBlock Text="{Binding Count}" 
                       HorizontalAlignment="Center"/>
                       <TextBlock Grid.Column="1" Text="{Binding 
                           FileName}" />                        
                    <ProgressBar Grid.Column="2" Minimum="0" Maximum="100" 
                   Foreground="DarkGreen" Value="{Binding Status}" />
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

1 个答案:

答案 0 :(得分:0)

是的,这可以做到..这样做..我编辑了你的代码

     <ListBox BorderThickness="0" x:Name="newListBox">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid  ShowGridLines="True" Margin="0,2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="30" />
                        <ColumnDefinition Width="100" />
                        <ColumnDefinition Width="130" />
                    </Grid.ColumnDefinitions>
                    <TextBlock Text="{Binding Count}" HorizontalAlignment="Center"/>
                    <ScrollViewer  VerticalScrollBarVisibility="Disabled" CanContentScroll="True" Grid.Column="1" HorizontalScrollBarVisibility="Visible">
                        <TextBlock Text="{Binding FileName}" />
                    </ScrollViewer>
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>