Files
StellarX-kaifa/开发记录/BUG/BUG-20251209-0001-TabControl由不可见设置为可见时绘制错乱.md

54 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BUG-20251209-0001
> 适用场景:记录问题本身,不展开完整修复方案。修复内容写入对应的 Fix 文档。
## 基本信息
- ID: BUG-20251209-0001
- 标题: TabControl 由不可见设置为可见时绘制错乱
- 状态:已修复
- 严重性:S3
- 优先级:P2
- 模块: TabControl
- 版本 / 分支: V2.3.1
- 环境: Visual Studio / Debug / Release
- 发现人: 用户
- 关联 Fix ID: Fix-BUG-20251209-0001
## 问题描述
- 现象: 调用 `TabControl::setIsVisible()` 将选项卡由不可见变为可见时,会绘制出未激活的页面。
- 影响范围: 多页面 TabControl 在隐藏后重新显示时可能出现页面叠加,造成绘制错乱并影响用户体验。
- 期望结果: TabControl 可见后只绘制当前激活页;如果没有激活页,则不绘制任何页。
- 实际结果: 所有页面被绘制出来,导致未激活页和激活页重叠。
## 复现信息
- 前置条件:[可选] 存在至少两个页面的 TabControl。
- 复现步骤:
1. 将 TabControl 设置为不可见。
2. 通过事件或回调将 TabControl 设置为可见。
3. 观察页面绘制结果。
- 复现概率:必现
- 最小复现 Demo:[可选] TabControl 隐藏 / 显示切换场景
- 证据:PDF 历史记录描述隐藏后恢复显示会绘制所有页;初步定位到 `TabControl::setIsVisible()` 的可见性传播逻辑。
## 初步分析
- 疑似位置: `TabControl::setIsVisible()`
- 触发条件: TabControl 从不可见切换为可见时,对子页面统一传播可见状态。
- 相关线索:
- `show` 状态恢复为 true 后,非激活页也参与绘制。
- TabControl 的页面可见性没有与当前激活状态保持一致。
- 最近相关改动:[可选]
## 跟踪信息
- 首次发现时间: 2025-12-09
- 最后更新时间: 2026-09-19(从 PDF 整理入库)
- 修复版本: v2.3.2
- 验证版本:[可选] v2.3.2
- 备注:[可选] 来源原始 ID 为 `BUG-20251209`;PDF 未包含 `-XXXX` 后缀,入库时补充序号。