You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinUI 3项目能否使用Microsoft.Toolkit.Uwp.UI.Media的AcrylicBrush?

WinUI 3桌面项目使用Windows Community Toolkit AcrylicBrush的正确姿势

能不能在WinUI 3里用UWP版Toolkit的AcrylicBrush?

答案是不推荐直接用UWP版,因为Windows Community Toolkit有专门适配WinUI 3的分支。你之前找到的Microsoft.Toolkit.Uwp.UI.Media是给UWP项目用的,WinUI 3桌面项目应该用Microsoft.Toolkit.WinUI.Media命名空间下的AcrylicBrush——这是官方为WinUI 3优化的版本,既能避免和WinUI原生Microsoft.UI.Xaml.Media.AcrylicBrush的命名冲突,也能完美适配WinUI 3的桌面环境。

解决步骤

1. 安装正确的NuGet包

先卸载你当前安装的UWP版Toolkit相关包,然后安装WinUI适配版:

Install-Package Microsoft.Toolkit.WinUI.UI.Media

或者直接在NuGet包管理器里搜索Microsoft.Toolkit.WinUI.UI.Media完成安装。

2. 处理命名空间冲突

如果你的项目同时需要原生和Toolkit的AcrylicBrush,给两个命名空间加别名区分:
在XAML页面的根元素里添加:

xmlns:toolkitMedia="using:Microsoft.Toolkit.WinUI.Media"
xmlns:xamlMedia="using:Microsoft.UI.Xaml.Media"

使用时明确指定:

<!-- 使用Toolkit功能更丰富的AcrylicBrush -->
<toolkitMedia:AcrylicBrush BackgroundSource="Backdrop" TintColor="#FF1E1E1E" TintOpacity="0.6" />

<!-- 使用WinUI原生AcrylicBrush -->
<xamlMedia:AcrylicBrush BackgroundSource="Backdrop" TintColor="#FF0078D4" />

如果只需要Toolkit的版本,直接引入toolkitMedia命名空间即可,不用管原生的。

3. 修复你遇到的错误

你提到的代码错误(推测是XAML类型找不到或加载失败),核心原因就是引用了UWP版的Toolkit包——WinUI 3桌面项目和UWP的控件模型存在差异,UWP组件无法直接在WinUI 3桌面环境中正常工作。换成WinUI适配版的Toolkit包后,这个问题就能解决。

补充说明

  • WinUI 3虽然脱胎于UWP,但桌面项目的运行环境和UWP不同,必须使用专门适配WinUI 3的第三方库,否则容易出现兼容性问题。
  • Windows Community Toolkit的WinUI版本AcrylicBrush支持背景模糊度、自定义色调、透明度等更多扩展功能,完全符合你想要的丰富特性需求。

内容的提问来源于stack exchange,提问作者Георгий Попов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:47:50