.NET MAUI应用在32寸4K显示器启动崩溃的解决求助
解决.NET MAUI在4K显示器启动时的位图尺寸超限异常
替换/优化启动图资源
你的推测完全正确,默认的splash.svg在高DPI显示器上被过度拉伸,导致生成的位图尺寸(19200×83)超过了系统限制的16384像素。可以这么处理:- 直接替换为适配高DPI的位图(如PNG):在项目
Resources\Splash目录下,把默认的splash.svg换成尺寸合适的PNG文件,比如2560×1440或3840×2160分辨率的图,避免系统过度放大。 - 编辑SVG文件限制尺寸:打开
splash.svg,设置固定的width和height属性,同时匹配viewBox值,比如设置width="1920" height="1080" viewBox="0 0 1920 1080",防止无限制拉伸。
- 直接替换为适配高DPI的位图(如PNG):在项目
调整Windows平台的DPI感知设置
在Platforms\Windows\App.xaml中,给Application标签添加DPI感知配置,控制应用的缩放行为:<Application x:Class="YourAppName.WinUI.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:YourAppName.WinUI" xmlns:windows="using:Microsoft.UI.Xaml" windows:Application.DpiAware="PerMonitorV2">PerMonitorV2是推荐的高DPI模式,能让应用根据显示器DPI自适应,避免启动图被过度放大。如果还是有问题,可以尝试System或PerMonitor模式。临时禁用启动图验证问题
若要快速确认是否为启动图导致的崩溃,可临时禁用它:打开Platforms\Windows\Package.appxmanifest,找到<uap:SplashScreen>节点,注释或删除该节点,重新启动应用看是否还会抛出异常。
内容的提问来源于stack exchange,提问作者Phunction
相关产品推荐
相关产品推荐

