WPF 使用 Composition API 做高性能渲染

该博客介绍了如何在WPF中利用Composition API提升渲染性能,通过HwndHost获取窗口句柄,结合COM接口调用来实现。主要内容包括代码下载、关键代码展示,以及使用中的一些限制和不足,如Win2d库的支持问题、DPI适配和交互命中测试等。此外,还提供了官方和作者修改过的代码示例。
摘要由CSDN通过智能技术生成

在 WPF 中很多小伙伴都会遇到渲染性能的问题,虽然 WPF 的渲染可以甩浏览器渲染几条街,但是还是支持不了游戏级的渲染。在 WPF 使用的 DX 只是优化等级为 9 和 DX 9 差不多的性能,微软在很多开发者的提议开放了现代渲染方法 Composition API 这是 UI 应用的里程碑的技术

现在这个技术只是最小可用版本,但是还是可以玩一下。

先更新自己的系统到1803或以上,如果是想成为 Windows 开发者,就需要自己的系统是最新的

然后下载安装 VS 2019 最新版本,安装 .NET Core 3.0 预览版

官方下载链接 VisualStudio 2019 .NET Core

下载运行代码

github 官方 https://github.com/Microsoft/Windows.UI.Composition-Win32-Samples 下载最新代码,尝试编译运行

打开 dotnet\WPF\HelloComposition 里面的解决方案,注意使用 VisualStudio 2019 打开

通过 Nuget 还原两个库,一个是 Microsoft.Windows.SDK.Contracts 这是一个包含在桌面使用的 Windows Runtime API 库和System.Numerics.Vectors 支持向量计算

这里的 HelloComposition 就是最简单的项目,可以通过这个项目了解使用方法

因为这个项目现在还是预览的,要做好使用命令行编译,在一开始发现了这个项目使用的是以前的 csproj 格式,同时也没法直接在 VisualStudio 2019 里面编译成功,于是我将这个项目格式修改为新的格式,通过命令行还原编译之后就可以在 VisualStudio 2019 调试了。

修改方法是使用下面代码替换 HelloComposition.csproj 文件,同时删除 HelloComposition\Properties\AssemblyInfo.cs 文件

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值