You need to enable JavaScript to run this app. 升级Xamarin Forms到5.0.0后Expander控件未找到:是改名还是被移除
优惠活动
大模型
产品
解决方案
定价
更多

升级Xamarin Forms到5.0.0后Expander控件未找到:是改名还是被移除

Xamarin.Forms 5.0 升级后 Expander 无法识别的问题解答

核心结论

Expander 既没有被修改名称,也没有被彻底移除,它在Xamarin.Forms 5.0中被从核心框架程序集剥离,转由官方团队主导的社区工具包独立提供维护和更新。

变更背景

Xamarin.Forms 4.x阶段官方就开始收敛核心框架的范围,把一批不属于基础UI框架必备能力、最初由社区贡献开发的控件从核心包中拆分,以此压缩核心程序集的体积、降低框架升级的耦合成本。Expander 属于首批被拆分的控件名单,在5.0正式发布版本中,它已经完全从Xamarin.Forms.Core核心程序集中移除,因此沿用之前在XAML中直接无引用使用Expander的配置,自然会触发“类型不存在、缺少程序集引用”的报错。

完整迁移修复步骤

  • 给解决方案下的所有关联项目(共享代码库、Android平台项目、iOS平台项目等)安装官方维护的NuGet包:Xamarin.CommunityToolkit,当前可正常使用的Expander官方兼容版本全部收纳在该工具包内。
  • 在所有用到Expander的XAML页面的根节点属性中,添加对应控件包的命名空间引用,示例代码:
    xmlns:toolkit="clr-namespace:Xamarin.CommunityToolkit.UI.Views;assembly=Xamarin.CommunityToolkit"
  • 把原XAML里不带前缀的<Expander>标签,替换为带toolkit前缀的<toolkit:Expander>;后台C#代码中涉及Expander的类型引用,同步替换为Xamarin.CommunityToolkit.UI.Views命名空间下的类即可。

实操注意点

  • 迁移后的Expander和你之前在Xamarin.Forms 4.x中用到的版本核心API完全对齐,原来写的展开状态双向绑定、展开/收起事件回调、控件布局配置逻辑几乎不需要改动,就能直接正常运行。
  • 不要去找早就停更的第三方临时兼容包,这类包没有官方维护,对高版本Xamarin.Forms的适配存在漏洞,很容易引发运行时的不可预期异常。

内容的提问来源于stack exchange,提问作者signalover

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.03 12:06:07