Ресурс из ResourceDictionary в приложении UWP распознается только на Xbox - PullRequest
1 голос
/ 27 апреля 2020

В проекте, над которым я работаю, происходит особая проблема. Некоторые ресурсы, добавленные в словари ресурсов приложения UWP , не распознаются при локальном запуске приложения на P C, но распознаются при запуске на Xbox.

Когда При запуске приложения в P C (Debug | x64) из Visual Studio при запуске появляется следующее исключение:

Windows.UI.Xaml.Markup.XamlParseException
  HResult=0x802B000A
  Message=The text associated with this error code could not be found.

Cannot find a Resource with the Name/Key SimpleTextBox [Line: 45 Position: 41]
  Source=<Cannot evaluate the exception source>
  StackTrace:
<Cannot evaluate the exception stack trace>

Это исключение срабатывает в методе InitializeComponent файла LoginView.xaml.cs. .

Стиль определен здесь , а ResourceDictionary включен здесь .

1 Ответ

1 голос
/ 29 апреля 2020

Я скачал исходный репозиторий, и действительно успешно запустил его на xbox, и потерпел неудачу на P C, и намекнул

Cannot find a Resource with the Name/Key ViewModelLocator [Line: 8 Position: 5]'

Так что нам нужно добавить ключ ViewModelLocator в файл JellyfinStyleResources.DeviceFamily-Desktop.xaml.

Мы делаем это, потому что на xbox приложение будет загружать JellyfinStyleResources без указанной платформы. Но на P C существует файл с именем JellyfinStyleResources.DeviceFamily-Desktop.xaml. Наше приложение автоматически загрузит файл, связанный с платформой.

Затем, после того, как мы добавим ключ выше, компилятор намекает на большее количество ошибок о пропавших ресурсах. Если вы сравните два файла, вы обнаружите, что автор пишет их только для xbox, поэтому вам нужно скопировать ресурсы в файл JellyfinStyleResources.DeviceFamily-Desktop.xaml.

После того, как все будет сделано, вы обнаружите, что приложение успешно запустить на вашем P C:)


Или вы можете просто удалить файл JellyfinStyleResources.DeviceFamily-Desktop.xaml, запустить приложение и готово:)

...