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

2.0 KiB
Raw Blame History

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 后缀,入库时补充序号。