前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WPF 升级 .NET Core 的理由

WPF 升级 .NET Core 的理由

作者头像
林德熙
发布2020-04-16 18:32:27
9430
发布2020-04-16 18:32:27
举报
文章被收录于专栏:林德熙的博客林德熙的博客

本文列举一些让 WPF 升级 .NET Core 的理由

提供更多的 API 同时提升运行性能

为了支持 Win7 系统,限制了 .NET Framework 升级版本

当前我团队的 .NET Framework 使用 4.5 但是如果使用 dotnet core 能使用更多的 API 同时这些 API 都优化了大部分性能

启动性能优化

在 dotnet core 2.2 提供的阶梯编译,可以提升启动过程的 JIT 编译速度

环境问题

可以全添加所有依赖的包,可以解决 .NET Framework 环境问题

修复 D3D Compile47 问题

Adding d3d_compiler dependency to known issues by rladuca · Pull Request #190 · dotnet/wpf

WPF Applications require crash with System.TypeLoadException when VC++ redistributables are not present · Issue #37 · dotnet/wpf

更多关于 D3D Compile47 问题,请看 win7 无法启动 WPF 程序 D3Dcompiler_47.dll 丢失

触摸问题修复

修复特定硬件带崩软件

修复特定硬件带崩软件,需要在 .NET 4.7.1 和 Win10 系统才能生效

dotnet/481090-WPF Touch generates NullReferenceException in ProcessInputReport.md at master · Microsoft/dotnet

This issue is fixed for all supported OS platforms prior to Windows 10 Fall Creators Update. The fix for Windows 10 Fall Creators Update is expected in a future servicing update.

代码语言:javascript
复制
 System.Windows.Input.StylusWisp.WispLogic.ProcessInputReport(RawStylusInputReport inputReport) 
 System.Windows.Input.PenContext.FirePackets(Int32 stylusPointerId, Int32[] data, Int32 timestamp) 
 System.Windows.Input.PenThreadWorker.FlushCache(Boolean goingOutOfRange) 
 System.Windows.Input.PenThreadWorker.ThreadProc() 
 System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
 System.Threading.ThreadHelper.ThreadStart()

书写索引超出了数组界限

此问题已经报告微软 Throw IndexOutOfRangeException in WispLogic.CoalesceAndQueueStylusEvent · Issue #935 · dotnet/wpf

代码语言:javascript
复制
在 System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
在 System.Windows.Input.StylusWisp.WispLogic.CoalesceAndQueueStylusEvent(RawStylusInputReport inputReport)
在 System.Windows.Input.StylusWisp.WispLogic.ProcessInputReport(RawStylusInputReport inputReport)
在 System.Windows.Input.PenContext.FirePackets(Int32 stylusPointerId, Int32[] data, Int32 timestamp)
在 System.Windows.Input.PenThreadWorker.FlushCache(Boolean goingOutOfRange)
在 System.Windows.Input.PenThreadWorker.FireEvent(PenContext penContext, Int32 evt, Int32 stylusPointerId, Int32 cPackets, Int32 cbPacket, IntPtr pPackets)
在 System.Windows.Input.PenThreadWorker.ThreadProc()
在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()

ExceptionType: System.IndexOutOfRangeException
ExceptionMessage: 索引超出了数组界限

触摸事件

在 .NET Core 和 .NET Framework 4.8 修复了在 StylusUp 抛异常等让下次触摸失效

Popup 修复

Popup 触摸问题

修复 Popup 触摸失效,需要在 .NET 4.7.1 和 Win10 系统才能生效

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 提供更多的 API 同时提升运行性能
  • 启动性能优化
  • 环境问题
    • 修复 D3D Compile47 问题
    • 触摸问题修复
      • 修复特定硬件带崩软件
        • 书写索引超出了数组界限
          • 触摸事件
          • Popup 修复
            • Popup 触摸问题
            相关产品与服务
            图像处理
            图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档