003008001_VirtualizingStackPanel 类
003008001_VirtualizingStackPanel 类摘要本文深入剖析 WPF 中VirtualizingStackPanel的完整知识体系——从继承链、核心特性、UI 虚拟化工作原理含 Mermaid 流程图到IsVirtualizing、VirtualizationMode等关键属性再到 3 个可运行的实战实例含 10 万条数据演示。同时覆盖虚拟化失效的 3 大典型场景排查固定高度、ScrollViewer 嵌套、复杂模板与快速排查表最后给出 Recycling 模式、ObservableCollection、分组虚拟化等 5 条性能调优最佳实践帮助开发者在 WPF 大数据列表场景中实现零卡顿的极致性能。核心能力UI 虚拟化——只渲染屏幕可视区域内的列表项非可视区域的项不创建 UI 元素彻底解决十万级 / 百万级数据列表卡顿、内存爆炸问题。​VirtualizingStackPanel虚拟化堆叠面板是 WPF专为****大数据量列表设计的高性能布局面板它是StackPanel的虚拟化增强版。一、类定义官方源码级1. 核心命名空间csharp:using System.Windows.Controls;2. 官方类声明csharp:public class VirtualizingStackPanel : Panel, // 继承布局基类 IStackPanel, // 实现堆叠布局接口 IScrollInfo, // 支持滚动逻辑 IVirtualizingPanel // 虚拟化核心接口3. 完整继承链Object └─ DispatcherObject └─ DependencyObject └─ Visual └─ UIElement └─ FrameworkElement └─ Panel (布局容器基类) └─ VirtualizingStackPanel 虚拟化堆叠面板4. 核心定位专门用于ItemsControl 系列列表控件ListBox/ListView/ItemsControl的高性能虚拟化布局面板沿用StackPanel线性堆叠逻辑同时实现 UI 虚拟化。5. UI 虚拟化工作原理下面以 Mermaid 流程图展示 VirtualizingStackPanel 从数据绑定到容器创建/回收/销毁的完整逻辑闭环不存在已存在且回收可用是StandardRecycling否数据源绑定ItemsSourceItemsControl 初始化生成 ItemContainerGeneratorScrollViewer 监听滚动事件计算当前可视区域Viewport确定需要显示的项范围FirstVisibleIndex ~ LastVisibleIndex检查项容器是否已存在创建新的项容器ContainerForItem从回收池取出复用Recycling 模式填充数据绑定与模板将容器添加至可视化树容器移出可视区域虚拟化模式销毁容器释放资源回收到池中准备复用步骤说明① 数据绑定与初始化列表控件ListBox 等绑定 ItemsSource 后ItemContainerGenerator 负责管理项容器的生命周期。② 滚动位置变化ScrollViewer 触发滚动事件VirtualizingStackPanel 通过 IScrollInfo 接口获取当前视口的偏移量和大小。③ 可视范围计算根据滚动偏移量和项高度基于项滚动或测量结果基于像素滚动计算出应从数据源映射的 FirstVisibleIndex 到 LastVisibleIndex。④ 容器管理若对应索引的容器尚未创建则生成新的项容器并填充 DataTemplate。若已存在如 Recycling 模式下回收池有可用容器则直接复用避免创建开销。⑤ 可视化树维护将所需容器加入面板的 Children 集合确保屏幕仅显示可视项。⑥ 回收与销毁当容器移出可视区域后根据 VirtualizationMode 决定是立即销毁Standard还是回收到池中供后续复用Recycling形成滚动 ↔ 回收的闭环。二、核心特性与普通 StackPanel 本质区别特性VirtualizingStackPanel普通 StackPanelUI 渲染仅渲染可视区域的项渲染所有子项性能十万级数据零卡顿千级数据就卡顿内存占用极低仅创建可视 UI极高创建所有 UI使用场景大数据列表、长列表少量元素、简单布局使用方式必须作为ItemsPanel使用直接手动添加子元素滚动支持原生支持滚动虚拟化无滚动优化三、核心属性必掌握1. 基础布局属性同 StackPanelOrientation: 排列方向Vertical默认垂直堆叠Horizontal水平堆叠2. 虚拟化核心附加属性作用于列表控件这些是附加属性直接写在ListBox/ItemsControl上属性取值作用VirtualizingStackPanel.IsVirtualizingTrue/False开启 / 关闭虚拟化默认TrueVirtualizingStackPanel.VirtualizationModeStandard/Recycling虚拟化模式•Standard标准滚动时销毁重建•Recycling回收复用最高性能3. 关键约束✅必须配合ScrollViewer使用(列表控件自带)✅必须作为ItemsPanel使用(不能手动加子元素)✅仅支持数据绑定列表(不支持手动Children.Add)四、标准使用方法​VirtualizingStackPanel不能像普通面板一样直接放按钮/文本它的唯一用法作为列表控件的 ItemsPanel项布局面板使用默认用法ListBox/ListView内置默认面板就是它无需任何配置自定义用法给ItemsControl显式指定该面板高级用法开启Recycling回收模式五、实战可运行实例3 个经典场景环境准备​ 创建 WPF 窗口绑定10万条测试数据测试高性能实例 1默认 ListBox自带虚拟化最简用法​ListBox/ListView默认 ItemsPanel 就是 VirtualizingStackPanel直接绑定大数据即可。xaml:Window x:ClassVirtualizingStackPanelDemo.MainWindow xmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentation xmlns:xhttp://schemas.microsoft.com/winfx/2006/xaml Title虚拟化列表 - 默认ListBox Height400 Width300 Grid !-- ListBox 内置 VirtualizingStackPanel直接绑定大数据 -- ListBox x:NamelistBox VirtualizingStackPanel.VirtualizationModeRecycling/ /Grid /WindowC# 后台绑定 10 万条数据csharp:using System.Collections.Generic; using System.Windows; namespace VirtualizingStackPanelDemo { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); // 生成 100000 条测试数据 Liststring data new Liststring(); for (int i 0; i 100000; i) { data.Add($虚拟化列表项 {i}); } // 绑定数据 listBox.ItemsSource data; } } }✅效果10 万条数据瞬间加载滚动丝滑无卡顿。实例 2自定义 ItemsControl显式指定虚拟化面板​ 手动给普通ItemsControl设置VirtualizingStackPanel实现水平虚拟化列表。xaml:Window x:ClassVirtualizingStackPanelDemo.CustomItemsDemo xmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentation xmlns:xhttp://schemas.microsoft.com/winfx/2006/xaml Title自定义ItemsControl-水平虚拟化 Height200 Width500 Grid ItemsControl x:NameitemsControl !-- 1. 开启滚动虚拟化必须依赖ScrollViewer -- ItemsControl.Template ControlTemplate ScrollViewer HorizontalScrollBarVisibilityAuto ItemsPresenter/ /ScrollViewer /ControlTemplate /ItemsControl.Template !-- 2. 指定 ItemsPanel VirtualizingStackPanel -- ItemsControl.ItemsPanel ItemsPanelTemplate !-- 水平排列 虚拟化 -- VirtualizingStackPanel OrientationHorizontal/ /ItemsPanelTemplate /ItemsControl.ItemsPanel !-- 列表项样式 -- ItemsControl.ItemTemplate DataTemplate Border Width80 Height80 BackgroundLightBlue Margin5 CornerRadius5 TextBlock Text{Binding} HorizontalAlignmentCenter VerticalAlignmentCenter/ /Border /DataTemplate /ItemsControl.ItemTemplate /ItemsControl /Grid /WindowC# 后台csharp:public partial class CustomItemsDemo : Window { public CustomItemsDemo() { InitializeComponent(); // 绑定1000条数据 Liststring data new Liststring(); for (int i 0; i 1000; i) data.Add($Item {i}); itemsControl.ItemsSource data; } }✅效果水平长列表仅渲染可视项滚动流畅。实例 3开启最高性能 - 回收模式Recyclingxaml:ListBox x:NamelistBox !-- 开启UI回收复用极致性能 -- VirtualizingStackPanel.IsVirtualizingTrue VirtualizingStackPanel.VirtualizationModeRecycling/Standard滚动时销毁不可见项新建可见项Recycling复用 UI 元素性能提升 50%推荐六、关键使用规则新手必看不能手动添加子元素❌ 错误virtualizingStackPanel.Children.Add(new Button());✅ 正确仅通过ItemsSource数据绑定必须依赖 ScrollViewer虚拟化需要滚动区域判断可视项列表控件默认自带。仅用于线性列表只支持垂直 / 水平堆叠不支持网格、换行、停靠。默认开启虚拟化ListBox/ListView无需任何配置直接用就是高性能。七、常见问题与排查1. ItemContainerStyle 固定高度 → 虚拟化失效问题给列表项设置了固定Height或MinHeight导致VirtualizingStackPanel无法正确估算可视区域所有项被一次性创建。❌ 错误示例通过ItemContainerStyle强制固定ListBoxItem的高度干扰了虚拟化面板的测量逻辑。!-- ❌ 错误固定高度可能导致虚拟化失效 -- ListBox ListBox.ItemContainerStyle Style TargetTypeListBoxItem Setter PropertyHeight Value50/ /Style /ListBox.ItemContainerStyle /ListBox✅ 正确示例移除ItemContainerStyle中的固定高度改为在ItemTemplate内部约束尺寸或启用基于项的滚动。!-- ✅ 正确移除固定高度在 ItemTemplate 内约束尺寸 -- ListBox ScrollViewer.CanContentScrollTrue ListBox.ItemTemplate DataTemplate Border Height40 TextBlock Text{Binding}/ /Border /DataTemplate /ListBox.ItemTemplate /ListBox原因虚拟化依赖项容器自适应内容高度来精确计算可视范围。强制固定高度会干扰测量逻辑。调试方法在代码后台检查VirtualizingStackPanel.IsVirtualizing是否为True同时监听ItemContainerGenerator.StatusChanged事件观察项容器生成数量。2. ScrollViewer 嵌套或缺失 → 虚拟化不工作问题在ItemsControl外部额外包裹ScrollViewer或自定义模板中遗漏ScrollViewer导致虚拟化面板无法感知滚动区域。❌ 错误示例ScrollViewer包裹在ItemsControl外部阻断虚拟化面板与滚动容器的直接协作。!-- ❌ 错误外部 ScrollViewer 嵌套内部虚拟化可能失效 -- ScrollViewer ItemsControl x:NameitemsControl ItemsControl.ItemsPanel ItemsPanelTemplate VirtualizingStackPanel/ /ItemsPanelTemplate /ItemsControl.ItemsPanel /ItemsControl /ScrollViewer✅ 正确示例ScrollViewer应作为ItemsControl控件模板的内部组件直接包裹ItemsPresenter。!-- ✅ 正确ScrollViewer 在控件模板内部 -- ItemsControl ItemsControl.Template ControlTemplate ScrollViewer ItemsPresenter/ /ScrollViewer /ControlTemplate /ItemsControl.Template ItemsControl.ItemsPanel ItemsPanelTemplate VirtualizingStackPanel/ /ItemsPanelTemplate /ItemsControl.ItemsPanel /ItemsControl原因VirtualizingStackPanel必须直接与ScrollViewer协同工作通过IScrollInfo接口。外部嵌套的ScrollViewer会阻断这种协作。调试方法使用 Visual Studio 的「实时可视化树」工具检查运行时控件的视觉树结构确认ScrollViewer是ItemsPresenter的直接父级。3. 复杂 DataTemplate 或分组 → 性能下降问题列表中使用了过于复杂的DataTemplate多层嵌套面板、大量绑定、高清图片等即使虚拟化开启滚动仍然卡顿。❌ 错误示例多层嵌套面板 高分辨率原图 分组未启用虚拟化。!-- ❌ 错误复杂嵌套 未启用分组虚拟化 -- ListBox ListBox.ItemTemplate DataTemplate StackPanel Grid StackPanel Image Source{Binding HighResImagePath}/ TextBlock Text{Binding Name}/ TextBlock Text{Binding Description}/ /StackPanel /Grid /StackPanel /DataTemplate /ListBox.ItemTemplate /ListBox✅ 正确示例简化模板层级、启用 Recycling 和分组虚拟化。!-- ✅ 正确简化模板 启用分组虚拟化 -- ListBox VirtualizingStackPanel.IsVirtualizingWhenGroupingTrue VirtualizingStackPanel.VirtualizationModeRecycling ListBox.ItemTemplate DataTemplate Grid Height36 TextBlock Text{Binding} VerticalAlignmentCenter/ /Grid /DataTemplate /ListBox.ItemTemplate /ListBox原因虚拟化减少了 UI 元素数量但如果每个可视项的渲染成本很高如复杂布局、未缓存的图片可视区域范围内仍会产生性能瓶颈。解决简化DataTemplate减少嵌套面板层数使用Canvas或单层Grid替代多层StackPanel图片使用缩略图 异步加载避免在DataTemplate中直接绑定高分辨率原图开启Recycling回收模式复用项容器减少 GC 压力若使用分组CollectionViewSourceGroupStyle确认VirtualizingStackPanel.IsVirtualizingWhenGroupingTrue默认False调试方法使用 WPF Performance Suite 或 dotTrace 分析滚动时的 CPU/内存占用定位瓶颈在布局、渲染还是数据绑定。4. 快速排查表下表汇总了虚拟化失效的 4 个典型症状、可能原因及对应的检查项 / 修复方法方便开发者快速定位问题典型症状可能原因检查项 / 修复方法滚动严重卡顿帧率极低虚拟化被意外关闭IsVirtualizingFalse或误用了非虚拟化面板检查列表控件上VirtualizingStackPanel.IsVirtualizing是否为True确认ItemsPanel为VirtualizingStackPanel而非普通StackPanel内存激增10 万条数据占数百 MB项容器设置了固定Height/MinHeightItemContainerStyle导致所有项一次性创建移除ItemContainerStyle中的固定高度改为在ItemTemplate内约束尺寸或设置ScrollViewer.CanContentScrollTrue启用基于项滚动列表一次性加载全部数据首屏极慢ScrollViewer嵌套在ItemsControl外部或自定义模板中遗漏ScrollViewer使用「实时可视化树」确认ScrollViewer是ItemsPresenter的直接父级确保ScrollViewer位于ControlTemplate内部使用分组后性能急剧下降VirtualizingStackPanel默认对分组禁用虚拟化IsVirtualizingWhenGroupingFalse显式设置VirtualizingStackPanel.IsVirtualizingWhenGroupingTrue并配合Recycling模式八、VirtualizingStackPanel VS 其他布局面板面板布局方式性能适用场景VirtualizingStackPanel线性 虚拟化极致大数据列表1 万 项StackPanel线性低少量元素100 项WrapPanel流式换行中标签云、小列表DockPanel停靠中窗口框架Grid网格高表单、精细布局九、总结核心记忆点类定义VirtualizingStackPanel : Panel实现IVirtualizingPanel虚拟化接口核心能力UI 虚拟化仅渲染可视项大数据列表专用使用方式作为列表控件的 ItemsPanel不能手动加子元素核心属性Orientation方向、VirtualizationMode回收模式默认宿主ListBox/ListView内置该面板开箱即用一句话长列表、大数据必用 VirtualizingStackPanel普通小列表用 StackPanel十、最佳实践与性能调优1. 始终启用 Recycling 虚拟化模式VirtualizationModeRecycling是性价比最高的性能开关它复用已创建的项容器避免滚动时频繁销毁和重建 UI 元素可降低 CPU 开销50% 以上。除非确需Standard行为如调试容器生命周期否则应在所有列表控件上显式开启。ListBox VirtualizingStackPanel.VirtualizationModeRecycling/2. 数据源必须实现 INotifyCollectionChanged绑定到ItemsSource的集合应实现INotifyCollectionChanged如ObservableCollectionT。若直接使用ListT或数组当集合增删改时 WPF 只能全量刷新列表不仅导致虚拟化失效还引发闪烁和卡顿。ObservableCollection的通知机制允许控件仅更新受影响的项容器保持虚拟化有效。ObservableCollectionstringitemsnewObservableCollectionstring();listBox.ItemsSourceitems;3. 简化 DataTemplate 布局避免复杂动画每个虚拟化容器在进入可视区域时仍需执行完整的测量、排列和渲染流程。多层嵌套的StackPanel/Grid、Effect效果、内嵌Storyboard动画会大幅增加单个项的成本。建议使用单层Grid或Canvas替代多层嵌套用固定尺寸而非Auto将耗时的动画和特效移至项容器的Loaded/Unloaded事件外部管理。4. 设置固定项高度并启用基于项滚动在垂直列表中若所有项高度一致应指定ScrollViewer.CanContentScrollTrue。这使得滚动以项为单位而非像素VirtualizingStackPanel可直接通过索引计算可视项无需遍历测量所有容器高度进一步提升滚动性能。ListBox ScrollViewer.CanContentScrollTrue ListBox.ItemTemplate DataTemplate Border Height36 TextBlock Text{Binding}/ /Border /DataTemplate /ListBox.ItemTemplate /ListBox5. 开启分组虚拟化使用CollectionViewSource进行分组时VirtualizingStackPanel默认禁用虚拟化IsVirtualizingWhenGroupingFalse。必须显式设置VirtualizingStackPanel.IsVirtualizingWhenGroupingTrue否则每一分组及其所有子项都会被一次性创建严重破坏性能。ListBox VirtualizingStackPanel.IsVirtualizingWhenGroupingTrue VirtualizingStackPanel.VirtualizationModeRecycling/

相关新闻

003007002_WPF DockPanel 基类官方类定义逐行深度解析

003007002_WPF DockPanel 基类官方类定义逐行深度解析

003007002_WPF DockPanel 基类官方类定义逐行深度解析 基于 .NET 8 官方开源源码 完整解析,包含所有公共 / 受保护成员、特性、设计意图和工业场景应用。DockPanel是 WPF 最常用的边缘停靠布局容器,专门用于将子元素停靠在容器的四个边缘,是工…

2026/10/11 9:34:30 阅读更多 →
东南亚20米巨蟒事件:科学验证、生态警示与爬行动物学解析

东南亚20米巨蟒事件:科学验证、生态警示与爬行动物学解析

这次我们来看一个关于东南亚捕获20米巨蟒的新闻事件。这听起来像是电影《狂蟒之灾》里的情节,但现实往往比电影更让人难以置信。本文将带你了解这次捕获事件的背景、巨蟒的真实尺寸、相关的生物学知识,以及这类事件背后反映的生态问题。如果你对巨型生物…

2026/10/4 20:27:48 阅读更多 →
Agent 评测的基本概念与经典方法

Agent 评测的基本概念与经典方法

背景 现如今想要搭建一个 Agent,其实并不是很复杂,已经有非常多成熟的框架和架构选型。但是,很多人会遇到同一个问题:Agent 构建好之后,到底应该怎么评测? Agent 的评测的确是一个比较复杂的事情&#xff0…

2026/10/6 12:58:47 阅读更多 →

最新新闻

有效使用Claude Code:从问答误区到工程级实战

有效使用Claude Code:从问答误区到工程级实战

放弃思考。直接用Claude Code把这条Issue给看了”。结果它真的打开了仓库、跑了测试、改了三行代码、还顺手给我提了一个测试用例。那一刻我才意识到,不是这工具差,是我根本没把它当成一个能执行的人,而是当成一个更聪明的百度。这种理解偏差…

2026/10/11 14:09:20 阅读更多 →
医务管理系统详细设计说明书:从文档到可落地设计基线

医务管理系统详细设计说明书:从文档到可落地设计基线

简介:《医务管理系统详细设计说明书》面向医疗信息化行业的系统分析师、架构师与开发人员,用于指导医院医务管理系统的设计与落地。文档围绕系统简述、参考资料、设计约束、总体结构与功能结构设计、系统架构图、版本说明与修改记录、安全与隐私保护、性…

2026/10/11 14:09:20 阅读更多 →
PLC编程中FC与FB的本质区别:从内存模型到工程选型实战

PLC编程中FC与FB的本质区别:从内存模型到工程选型实战

1. 从一次产线停机说起:为什么“功能”和“功能块”总被混为一谈很多做工业自动化控制的朋友,在刚接触PLC编程或者DCS组态的时候,都会遇到一个绕不开的坎:功能(Function,FC)和功能块&#xff08…

2026/10/11 14:09:20 阅读更多 →
SpringBoot+Vue+MySQL实战:BS美食网站前后端分离系统全解析

SpringBoot+Vue+MySQL实战:BS美食网站前后端分离系统全解析

做课程设计或者初学前后端分离,最怕遇到的一件事,就是从网上扒下来一个写着“可直接运行”的项目,结果环境配到怀疑人生。今天聊的这套BS美食网站信息管理系统,走的是SpringBoot后端Vue前端MySQL数据库的经典组合,前后…

2026/10/11 14:09:20 阅读更多 →
为什么吃药会伤肝呢?科学家对小鼠做了什么?!

为什么吃药会伤肝呢?科学家对小鼠做了什么?!

背景介绍:药物性肝损伤(druginducedliverinjury,DILI)可分为固有型与特异质两类,是导致新药撤市、急性肝衰竭的主要诱因。布洛芬作为常用非甾体抗炎药,常规治疗剂量肝毒性较低,大剂量或长期暴露…

2026/10/11 14:09:20 阅读更多 →
QT实现FTP上传下载工具:协议选型、核心类与避坑指南

QT实现FTP上传下载工具:协议选型、核心类与避坑指南

简介:一套基于Qt5框架、使用C语言编写的FTP客户端工具源码,面向需要在桌面或嵌入式Linux平台集成文件上传与下载功能的开发者。源码包共12个文件,其中4个cpp源文件与3个h头文件组成核心逻辑,pro工程文件和ui界面文件帮助快速构建项…

2026/10/11 14:08:19 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →