d2d 渲染下,竖排候选窗被卡片最小宽度撑大时,候选项的自然宽度小于卡片内宽, 选中高亮与命中区域只覆盖到文字宽度,右侧留下大片空白(候选项较长、宽度超过 卡片最小宽度时表现正常)。 根因:候选项行矩形取自按自然宽度测量得到的 itemGeometry。列表虽被拉伸到卡片 内宽,但绘制前 Present 阶段会以窗口宽度重新测量,把每项宽度还原为自然宽度,而 此时排布命中缓存(矩形未变)被跳过,铺满逻辑无法重新生效。 改为在 ItemRect 中直接以列表最终布局宽度 bounds_ 计算竖排行矩形,不再依赖逐项 自然宽度,绘制与命中同时受益,且不受测量/排布缓存影响。右侧留白由卡片内边距 提供,与左侧保持一致。横排路径不变。 新增 GetItemBounds 访问器与三个回归测试,其中一个复刻了 Present 重新测量的时序, 可捕获此前方案的退化。