WPF 窗口白屏问题分析与初步解决

文章讲述了在Windows11环境下,基于.NETFramework4.8的WPF程序在部分客户机上空白显示的问题。通过排查和使用WeDraft.Toolkit.FirstDraft解决,但未找到根本原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境描述

开发环境:

Windows 11

Visual Studio 2022

.NET Framework 4.8

目标电脑环境

Windows10

默认包含了 .NET Framework 4.8

现象

编译好的WPF应用程序,是基于 .NET Framework 4.8开发的,在大部分电脑上可以正常使用。在某个客户机上使用时,打开软件只出现白屏,默认窗口的放大缩小、关闭按钮、以及拖拽都可以正常使用,但是客户区域内容为空白如下图所示。

排查过程

1.安装.NET Framework 4.8.1

❌问题未解决

2.使用驱动精灵更新显卡等驱动

❌问题未解决

3.在.NET Framework4.8编译WinFrom的测试软件,在目标电脑上使用

WinFrom的测试软件可以正常使用。

4.在.NET 6上编译WPF测试软件,并在目标电脑上安装对应的环境

❌测试软件打开也是空白的

5.在WPF测试软件上使用样式库FirstDraft中的FdWindow替换默认的Window作为窗口,编译后在目标电脑上使用

✔ 窗口显示正常

原因分析

1.客户电脑缺失某些与WPF窗口渲染的库

2.查看FirstDraft的源代码可以发现,FdWindow窗口是基于WindowResizer和user.dll实现的。可能和这个有关系。

解决办法

使用NuGet获取WeDraft.Toolkit.FirstDraft控件,并将项目中的窗口全部用FdWindow替换。

仓库地址:mefdeamon/Toolkit-WeDraft: Build our own WPF Control Style Library [First Draft] [FirstDraft] (github.com)

总结

1.虽然使用WeDraft.Toolkit.FirstDraft可以临时解决问题,但是没有找到问题的根本原因。


积跬步以至千里:) (:一阵没来由的风

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值