wpf listBox 滚动分页 和 复制字段

WPF项目中ScrollViewer与ListBox的交互实现
这段代码展示了WPF项目中如何使用ScrollViewer和ListBox实现滚动和交互功能。ScrollViewer用于禁用自动回滚,并在滚动到底部时加载更多数据。ListBox显示项目列表,每个列表项包含多个数据字段,如编号、名称、分类、优先级等,支持复制、悬停显示更多内容、点击打开文件和显示详情按钮。同时,还实现了鼠标滚轮预览分页功能。

 

<ScrollViewer Background="White" RequestBringIntoView="ScrollViewer_RequestBringIntoView"
    Style="{StaticResource for_scrollviewer}" HorizontalScrollBarVisibility="Disabled"
    ScrollChanged="ScrollViewer_ScrollChanged" x:Name="svProject" Margin="0"             ScrollViewer.CanContentScroll="False">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"></RowDefinition>
            <RowDefinition Height="25"></RowDefinition>
        </Grid.RowDefinitions>
        <ListBox Margin="0,0,0,0" HorizontalAlignment="Stretch" Style="{StaticResource         listBoxWithoutScrollView}" ItemsSource="{Binding ProjectList}" x:Name="lbProjectList"
SelectedItem="{Binding SelectedProject,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" PreviewMouseWheel="ListBox_PreviewMouseWheel">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel Orientation="Vertical" />
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ListBox.Resources>
                <Style TargetType="ListBoxItem">
                    <EventSetter Event="RequestBringIntoView" Handler="ScrollViewer_RequestBringIntoView" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type ListBoxItem}">
                            <Border BorderBrush="#D6D6D6" Background="Transparent" BorderThickness="1,0,1,1">
                                <Grid MinHeight="50" Margin="15,0,0,0">
                                    <Grid.Resources>
                                        <Style TargetType="TextBlock">
                                            <Setter Property="Foreground" Value="{StaticResource MainForground}"></Setter>
                                            <Setter Property="FontSize" Value="{StaticResource FontSize14}"></Setter>
                                            <Setter Property="VerticalAlignment" Value="Center"></Setter>
                                            <Setter Property="HorizontalAlignment" Value="Left"></Setter>
                                            <Setter Property="HorizontalAlignment" Value="Left"></Setter>
                                            <Setter Property="TextTrimming" Value="CharacterEllipsis"></Setter>
                                            <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=Text}"></Setter>
                                            <Setter Property="Padding" Value="5,0,0,0"></Setter>
                                            <Setter Property="MaxWidth" Value="140"></Setter>
                                        </Style>
                                    </Grid.Resources>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="160" />
                                    <ColumnDefinition Width="100" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="100" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="Auto" />
                                    <ColumnDefinition Width="70" />
                                </Grid.ColumnDefinitions>
                                <StackPanel Orientation="Horizontal" x:Name="spProCopy" Width="160">
                                <StackPanel Grid.Column="0" VerticalAlignment="Center" Cursor="Hand">
                                <TextBlock x:Name="txtNo" Text="{Binding projectNo}" Style="{Sta
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值