针对 UWP 平台抛出错误的平台特定 xaml

Platform specific xaml that is throwing error for the UWP platform

我有针对 UWP 平台的特定平台 xaml 抛出错误。

Unexpected 'NONE' in parse rule 'Element ::= . EmptyElement | ( StartElement ElementBody ).'.

我的 Xaml 看起来像:

xmlns:wasm="http://uno.ui/wasm" 
xmlns:not_wasm="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    
mc:Ignorable="d wasm not_wasm"

<ItemsPanelTemplate>
    <not_wasm:ItemsWrapGrid Orientation="Horizontal"  MaximumRowsOrColumns="8"/>
    <wasm:WrapPanel/>
</ItemsPanelTemplate>

以上构建对于 wasm 没有错误,但对于 UWP 它失败并出现上述错误。
想知道是什么原因造成的吗?

这里的问题是您的标记在可忽略列表中有 not_wasm 命名空间。所以 Windows 忽略它,然后认为 <ItemsPanelTemplate /> 是空的。

一般来说,任何具有“http://schemas.microsoft.com/winfx/2006/xaml/presentation”的特定于平台的命名空间都应该进入可忽略列表。任何形式为“http://uno.ui/xxxx”的特定于平台的命名空间都应该进入可忽略列表。

正确的标记是:

xmlns:wasm="http://uno.ui/wasm" 
xmlns:not_wasm="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    
mc:Ignorable="d wasm"

<ItemsPanelTemplate>
    <not_wasm:ItemsWrapGrid Orientation="Horizontal"  MaximumRowsOrColumns="8"/>
    <wasm:WrapPanel/>
</ItemsPanelTemplate>