Windows UWP 扩展启动屏幕图像在移动设备上渲染不正确

2024-01-09

我为我的 Windows uWP 应用程序构建了一个扩展的启动屏幕。我按照此页面中的示例代码(包括用于扩展启动屏幕的 xaml)进行操作

显示启动画面以延长时间 https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/create-a-customized-splash-screen

它在桌面窗口上正确渲染,它完美居中并与初始启动屏幕图像完全对齐,但是当我尝试移动模拟器时(我尝试了 720p 的 5 英寸屏幕之一),扩展启动屏幕页面图像似乎太大(它看起来几乎大两倍或三倍),并且出现在页面右下角被切断的情况,我假设进度环位于图像下方并且超出页面边界,因此不可见。

这是它在移动设备上的样子,左图是初始启动屏幕,右图是扩展的启动页面。

我的扩展启动页面的 XAML 是这样的

<Page
    x:Class="MyApp_Win10.ExtendedSplash"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MyApp_Win10"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid Background="#FF000012" >
        <Canvas>
        <Image x:Name="extendedSplashImage" Source="Assets/SplashScreen/SplashScreenImage3.png"/>
        <ProgressRing Name="splashProgressRing"   IsActive="True" Width="60" Height="60"  HorizontalAlignment="Center"></ProgressRing>
        </Canvas>
    </Grid>
</Page>

我的 package.appmanifest 看起来像这样。 (Assets 文件夹中有一张图像被创建为 Splash Screen Image.scale-200.png,尺寸为 1240(宽)x 600(高))

EDIT:我将剩余的 3 个图像比例 150、125 和 100 添加到 package.appmanifest 中,但没有任何区别。由于扩展的启动页面与初始启动页面不同,我认为它正在选择我在 XAML 中编写的确切图像文件 - 这是尺寸为 1240 w x 600 h 的完整尺寸。

同样在扩展启动画面的代码隐藏中,这些是启动画面的坐标

EDIT:我的 PositionImage() 和 PositionRing() 函数

void PositionImage()
{
    extendedSplashImage.SetValue(Canvas.LeftProperty, splashImageRect.X);
    extendedSplashImage.SetValue(Canvas.TopProperty, splashImageRect.Y);

    extendedSplashImage.Height = splashImageRect.Height;
    extendedSplashImage.Width = splashImageRect.Width;

}

void PositionRing()
{
    splashProgressRing.SetValue(Canvas.LeftProperty, splashImageRect.X + (splashImageRect.Width * 0.5) - (splashProgressRing.Width * 0.5));
    splashProgressRing.SetValue(Canvas.TopProperty, (splashImageRect.Y + splashImageRect.Height + splashImageRect.Height * 0.1));

}

确保在 PositionImage() 和 PositionRing() 函数中,当设备是手机时,您可以按如下方式处理这种情况

void PositionImage()
{
    extendedSplashImage.SetValue(Canvas.LeftProperty, splashImageRect.X);
    extendedSplashImage.SetValue(Canvas.TopProperty, splashImageRect.Y);

    if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
    {
        extendedSplashImage.Height = splashImageRect.Height / ScaleFactor;
        extendedSplashImage.Width = splashImageRect.Width / ScaleFactor;
    }
    else
    {
        extendedSplashImage.Height = splashImageRect.Height;
        extendedSplashImage.Width = splashImageRect.Width;
    }
}

void PositionRing()
{
    splashProgressRing.SetValue(Canvas.LeftProperty, splashImageRect.X + (splashImageRect.Width * 0.5) - (splashProgressRing.Width * 0.5));
    splashProgressRing.SetValue(Canvas.TopProperty, (splashImageRect.Y + splashImageRect.Height + splashImageRect.Height * 0.1));

    if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons"))
    {
        splashProgressRing.Height = splashProgressRing.Height / ScaleFactor;
        splashProgressRing.Width = splashProgressRing.Width / ScaleFactor;
    }
}

and

//Variable to hold the device scale factor (use to determine phone screen resolution)
private double ScaleFactor = DisplayInformation.GetForCurrentView().RawPixelsPerViewPixel; 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows UWP 扩展启动屏幕图像在移动设备上渲染不正确 的相关文章

随机推荐

  • 使用 importlib.util 检查库时出错

    我正在尝试使用 importlib 库来验证 nmap 库是否安装在执行 Python 3 5 2 中的脚本的计算机上 我正在尝试使用importlib util find spec nmap 但收到以下错误 gt gt gt import
  • 鼠标悬停在按钮上的问题

    我正在使用 Twitter Bootstrap 当我将鼠标悬停在btn primary button 这是我的代码 div class navbar navbar fixed top div class navbar inner div c
  • 如何使用c#检查xml文件是否为空

    大家好 我想检查我的 xml 文件是否为空 我正在尝试将一个 xml 数据更新为另一个 为此我正在使用以下代码 现在请告诉我如何检查我的 xml 文件是否有数据 这是我用来更新 xml 文件的代码 protected void CheckU
  • 使用索引搜索相似的单词

    我需要使用某种模糊搜索 例如来自 Oracle 的模糊搜索 并使用索引来搜索数据库表 因为我不需要表扫描 有大量数据 我想忽略大小写 语言特殊内容 和特殊字符 如 等 搜索 maria cool 应该得到 maria COOL 和 Mar
  • Spring Security + Keycloak:登录后403

    我尝试重现一个https www baeldung com spring boot keycloak教程进行了一些简化 我的 Keycloak 服务器也在另一台机器上 由于弃用 配置也略有变化antMatchers Configuratio
  • RestController 设计之争 - Spring Boot REST API

    我对 REST API 开发还很陌生 我决定使用 Spring Boot 创建一个博客应用程序 但我真的在为应用程序的设计和结构而苦苦挣扎 现在我的应用程序由帖子和评论模型和存储库组成 对于这两个模型 我创建了服务类 PostService
  • iPhone 5 上的 Sqlite 磁盘 I/O 错误

    我有一个应用程序大量使用 SQLite 它在模拟器和 iPhone 4 4s 上都能完美运行 当我在 iphone 5 及更高版本上安装时 出现此错误 Unknown error finalizing or resetting statem
  • 在浏览器外通过 Silverlight 调用 Office Communicator

    当浏览器耗尽时 我需要调用 Office Communicator 创建聊天窗口并直接从 Silverlight 拨打电话 当在浏览器中运行时 我这样做并且效果很好 System Windows Browser HtmlPage Windo
  • Angular/Cordova:Android 设备上的 MIME 类型问题

    我创建了一个 Cordova 应用程序 它在创建新项目时仅提供默认的 Angular 欢迎页面 它在浏览器中运行良好 通过 Android Studio 在模拟器上运行它时效果很好 当我在 Android 设备上运行它时 我得到一个空白页面
  • 引用名称包含点的 bash 变量

    我有一个 bash 变量 agent1 ip with 192 168 100 137作为它的价值 当我在中提到它时echo像这样 echo agent1 ip 结果是 ip 我如何访问该值 UPDATE 我的变量是 Bash 本身不理解带
  • HTML 重写的最佳替代方案是什么?

    考虑这个文档片段 div h1 An article about John h1 p The frist paragraph is about John p p The second paragraph contains a a href
  • 未处理的异常类型错误

    我以前从未遇到过此错误 所以我不知道该怎么做或它意味着什么 未处理的异常类型OperationApplicationException 它出现在这段代码中 public void putSettings SharedPreferences
  • 如何修复“重大更改:webpack < 5 默认情况下用于包含 Node.js 核心模块的 polyfills”错误?

    我正在尝试构建一个 React 应用程序 但每次运行 npm start 时 都会收到此消息 找不到模块 错误 无法解析 Users abdus Documents GitHub keywords tracker node modules
  • 如何动态渲染美人鱼流程图?

    我正在使用mermaid https mermaid js github io mermaid n00b gettingStarted用于构建流程图的库 其工作原理是在块内有一个伪代码 特殊语法的命令 在此基础上在块中构建流程图 我希望能够
  • 组合(合并)2 个 JSONObject 的最佳方法是什么?

    组合 合并 两个的最佳方法是什么JSONObjects JSONObject o1 one 1 two 2 three 3 JSONObject o2 four 4 five 5 six 6 以及合并的结果o1 and o2必须是 JSON
  • jQuery,如何使用多个缓存元素

    对于我的项目 我使用缓存选择器来加速 并查看改进 以减少文档内的搜索 var sel1 selector1 var sel2 selector2 在这种情况下如何使用缓存的选择器 例如 selector1 selector2 fadeTo
  • matplotlib 中的曲线文本渲染

    在我正在做的一个项目中 我必须从结构化文件 xml 中获取用户输入 该文件包含一个区域的道路数据 我必须将其绘制到 matplotlib 画布上 问题是 除了道路之外 我还必须渲染道路名称 而且大多数道路都是弯曲的 我知道如何以一定角度渲染
  • Python 完全对齐字符串

    有没有人有一种简洁的方法来完全证明给定线宽的字符串 如下所示 The cat sat on the mat the cat sat on the mat the cat sat on mat the cat sat on the mat t
  • SwiftUI 动态修改文本字段格式、字符串模式、掩码

    我正在尝试使用模式或掩码格式化 SwiftUI TextField 中的数据 为清楚起见 不是 UITextField 一个例子是美国的电话号码 所以用户 可以输入 1115551212 视图中的结果为 111 555 1212 我将在此使
  • Windows UWP 扩展启动屏幕图像在移动设备上渲染不正确

    我为我的 Windows uWP 应用程序构建了一个扩展的启动屏幕 我按照此页面中的示例代码 包括用于扩展启动屏幕的 xaml 进行操作 显示启动画面以延长时间 https msdn microsoft com en us windows