У меня есть интересная проблема, которую трудно отладить, так как это происходит, когда я использую активацию файла для запуска этого приложения. Если я запускаю приложение напрямую, никаких проблем. Если я дважды щелкну связанный файл, он зависнет на заставке, даже не пройдя мимо этого (установите точку останова отладки в InitializeComponent
, она даже не доходит).
Итак, что я сделал: на вкладке «Объявление манифеста» я добавил ассоциацию типов файлов к типу файлов, который я создал, и проверил, что «Открыть безопасно». Затем использовал переопределение OnNavigatedTo
, чтобы перехватить имя файла, который использовался для активации. Я получаю заставку, а затем ничего.
Если я просто запускаю приложение и открываю файл изнутри, все работает. Что меня поразило, так это то, что я использую именно OnNavigatedTo
в другом приложении, и оно работает безупречно.
Вот мой OnNavigatedTo:
protected override async void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
var args = e.Parameter as Windows.ApplicationModel.Activation.IActivatedEventArgs;
if (args != null)
{
if (args.Kind == Windows.ApplicationModel.Activation.ActivationKind.File)
{
var fileArgs = args as Windows.ApplicationModel.Activation.FileActivatedEventArgs;
string strFilePath = fileArgs.Files[0].Path;
var file = (StorageFile)fileArgs.Files[0];
//MainPlayList is a custom object used to manipulate the playlist of stuff I'm building.
MainPlayList = new Playlist();
MainPlayList.InitializePlayList();
await MainPlayList.AddImageToPlaylist(file);
}
}
}
Я проверил манифест пакета для рабочего приложения и этого. Кроме названия, они идентичны. Около 18 месяцев назад кто-то упомянул, что это может быть связано с используемой как минимум версией Windows. Пробовал и это, безрезультатно.