#uwp #uno-platform
Вопрос:
У меня есть xaml для конкретной платформы, который выдает ошибку для платформы UWP.
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 они завершаются с указанной выше ошибкой.
Есть какие-нибудь мысли о том, что вызывает это?
Ответ №1:
Проблема здесь в том, что ваша разметка содержит 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>