条件XAML崩溃UWP应用程序

我的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中我在1703运行时在运行时得到此错误:

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

我究竟做错了什么?

编辑
当我说1709年之前的版本时,只需要1703,因为那是最小目标.早于1703(Build 15063)的版本不支持条件XAML,因此这不是问题.

最佳答案 Windows 10 Mobile的最新版本不支持AcrylicBrush.

文档(
https://docs.microsoft.com/en-us/uwp/api/windows.ui.xaml.media.acrylicbrush)指定AcrylicBrush仅适用于Fall Creators Update 10.0.16299,该版本从未用于Mobile(最新版本为10.0.15254.490).

我认为这里的问题是AcrylicBrush不适用于最新的Mobile版本.

这里的最佳选择是创建一个继承自FrameworkElement的类,其中包含所需属性的Attached DependencyProperties.合同级别是否检查该类,并使用基于该级别的相应画笔更新背景属性.

点赞