Ксамлские острова - пример Microsoft не работает для меня - PullRequest
0 голосов
/ 07 ноября 2019

Я следую приведенному здесь базовому примеру стартера: https://docs.microsoft.com/en-us/windows/apps/desktop/modernize/host-custom-control-with-xaml-islands

Я следовал ему как можно точнее. Я могу заставить его работать, если я добавлю свой пользовательский элемент управления в приложение UWP (отличное от примера), но не так, как в пользовательском элементе управления в библиотеке классов.

Во-первых, когда я запускаю пример какя получаю: «WindowsXamlManager и DesktopWindowXamlSource поддерживаются для приложений, ориентированных на Windows версии 10.0.18226.0 и более поздних версий. Пожалуйста, проверьте либо манифест приложения, либо манифест пакета и убедитесь, что свойство MaxTestedVersion обновлено».

Единственное решение, которое яможно найти, чтобы это было добавить файл манифеста в проект wpf, содержащий:

<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>

      <!-- Windows 10 -->
      <maxversiontested Id="10.0.18362.0"/>
      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />

    </application>
  </compatibility>

</assembly>

После этого я не увидел эту ошибку, но при загрузке формы wpf я вижу «Не удается создать элемент управления типаClassLibrary1.MyUserControl1 ", но нет никаких подсказок о том, почему.

Кто-нибудь знает, что я делаю неправильно, как выяснить, в чем заключается проблема, узнать какие-либо примеры, которые работают?

1 Ответ

1 голос
/ 09 ноября 2019

Я скачал ваш проектный пакет и обнаружил, что вы пропустили шаг.

Это четвертый шаг в Создание пользовательского элемента управления UWP

Дозакрывающий элемент, добавьте следующий XML, чтобы отключить несколько свойств, а затем сохраните файл проекта. Эти свойства должны быть включены для размещения пользовательского элемента управления UWP в приложении WPF (или Windows Forms).

<PropertyGroup>
  <EnableTypeInfoReflection>false</EnableTypeInfoReflection>
  <EnableXBindDiagnostics>false</EnableXBindDiagnostics>
</PropertyGroup>

После добавления этого кода в ClassLibrary1.csproj очистите библиотеку классов и перестройтеэто, тогда все будет работать.

С уважением.

...