gpt4 book ai didi

xaml - 条件 XAML 崩溃 UWP 应用程序

转载 作者:行者123 更新时间:2023-12-05 01:07:28 24 4
gpt4 key购买 nike

我的 UWP 应用程序的目标版本最小为 1703,最大为 1803。它还使用 AcrylicBrush,直到 1709 年才可用。我正在尝试使用条件 XAML 在当前版本支持它时创建 AcrylicBrush(即版本是 1709 或更高)。

下面我有一个矩形,填充定义了两次,一次用于 1709 年之前的任何内容,一次用于 1709 年及以后的内容。此代码作品 .

编辑 :

下面的代码应该是 Version1803 和 Not1803。拉斐尔的回答是正确的; Windows 10 Mobile 1709 会因此崩溃……但 1703 不应该……所以为了简单起见,只需将“1709”替换为“1803”。话虽如此,有谁知道为什么它会在 1703 上崩溃?

--编辑结束。

xmlns:Version1709="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractPresent(Windows.Foundation.UniversalApiContract,5)"
xmlns:Not1709="http://schemas.microsoft.com/winfx/2006/xaml/presentation?IsApiContractNotPresent(Windows.Foundation.UniversalApiContract,5)"

<Rectangle x:Name="AcrylicRectangle">
<Version1709:Rectangle.Fill>
<AcrylicBrush Opacity="0.5"></AcrylicBrush>
</Version1709:Rectangle.Fill>
<Not1709:Rectangle.Fill>
<SolidColorBrush Color="Red" Opacity="0.5"></SolidColorBrush>
</Not1709:Rectangle.Fill>
</Rectangle>

这是独家新闻:1709 和更新的有一个透明的矩形(因为没有设置颜色),而 1709 之前的有一个红色的矩形,到目前为止一切都很好。这就是问题开始的地方。您会注意到我在 AcrylicBrush 中定义的唯一属性是 Opacity;任何其他定义的属性,如 TintColor、TintOpacity 等,都会使 1703 Mobile 上的应用程序崩溃。我尝试了许多不同的变体,但它们都有相同的问题:
<AcrylicBrush Version1709:TintColor="Red" Opacity="0.5"></AcrylicBrush>
<AcrylicBrush TintColor="Red" Opacity="0.5"></AcrylicBrush>
<Version1709:AcrylicBrush Version1709:TintColor="Red" Opacity="0.5"></Version1709:AcrylicBrush>
<Version1709:AcrylicBrush TintColor="Red" Opacity="0.5"></Version1709:AcrylicBrush>

从上面的四个 AcrylicBrushes 中,我在 Mobile 上的 1703 运行时收到此错误:

激活 Windows 应用商店应用程序“a77e7506-7031-4935-ad70-ef56585020de_h83rr06hb5xc0!App”失败,出现错误“Windows 无法与目标应用程序通信”。这通常表示目标应用程序的进程中止。 “输出”窗口的“调试” Pane 中可能提供更多信息(调试->Windows->输出)'。
程序“[6928] [UWPAppName].exe”已退出,代码为 -1073741189 (0xc000027b)。

我究竟做错了什么?

编辑
当我说 1709 之前的版本时,只需要 1703,因为这是最低目标。 1703(内部版本 15063)之前的版本不支持条件 XAML,因此这不是问题。

最佳答案

AcrylicBrush Windows 10 移动版的最新版本不支持。
文档 ( https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.media.acrylicbrush ) 指定 AcrylicBrush 仅在 Fall Creators Update 10.0.16299 上可用,而移动版从未可用(可用的最新版本为 10.0.15254.490)。

我认为这里的问题是 AcrylicBrush 在最新的 Mobile 版本中不可用。

对你来说最好的选择是创建一个继承自 FrameworkElement 的类。使用您需要的属性的附加依赖属性。在该类中执行 Contract 级别检查,并根据该级别使用适当的画笔更新背景属性。

关于xaml - 条件 XAML 崩溃 UWP 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51310906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com