Skip to content

fix: 修复自定义主页 MyCard 使用 Inlines 后无法折叠 - #9305

Open
TomorrowX6 wants to merge 2 commits into
Meloong-Git:mainfrom
TomorrowX6:fix/9162-mycard-inlines
Open

TomorrowX6 wants to merge 2 commits into
Meloong-Git:mainfrom
TomorrowX6:fix/9162-mycard-inlines

Conversation

@TomorrowX6

Copy link
Copy Markdown

修改内容

修复自定义主页中的 MyCard 在使用 Inlines 自定义标题后无法正常折叠的问题。

将 MainTextBlock 的创建逻辑提取为 InitMainTextBlock:

  • Inlines 只初始化标题 TextBlock,不再提前触发完整的 MyCard.Init();
  • MyCard 仍在 Loaded 阶段执行完整初始化;
  • 保留 MainTextBlock 属性原有的初始化行为,不影响现有调用。

问题原因

MyCard.Inlines 原先通过 MainTextBlock.Inlines 获取集合,而 MainTextBlock 的 Getter 会调用 Init()。

自定义主页解析 XAML 时,读取 MyCard.Inlines 的阶段正文控件尚未加入 Children,导致:

  • Children.Count 只有 3;
  • SwapControl 无法保存正文控件;
  • IsLoad 被提前设置为 True;
  • 后续 Loaded 事件直接返回;
  • 卡片最终无法折叠。

本 PR 使 Inlines 只初始化标题控件,避免在 XAML 内容完成加载前提前执行完整初始化。

验证

  • Debug 构建通过
  • Release 构建通过
  • 普通 MyCard 可正常折叠/展开
  • 使用 MyCard.Inlines 后可正常折叠/展开
  • IsSwapped="True" 时可正确默认折叠
  • IsSwapped="False" 时可正确默认展开
  • CanSwap="False" 时行为不变
  • 自定义主页刷新后行为正常
  • git diff --check 通过

Fixes #9162

@RyogiMutsuki
RyogiMutsuki requested a review from LTCatt August 28, 2026 13:53
@RyogiMutsuki RyogiMutsuki added · Bug 等待确认 已经过社区确认,等待开发者确认 labels Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

· Bug 解决 Issue PR 与特定 Issue 相关,且已能处理该 Issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

在自定义主页中当设置卡片的Inline属性后无法折叠卡片

2 participants