Wenn der Debugger angehängt ist, wird die App durch den Aufruf dieser Funktion angehalten. Wenn ich ohne einen Debugger laufe, gibt es kein Hängen und die Dateiauswahl funktioniert perfekt.UWP FileOpenPicker sperrt die App beim Debuggen
private async void OnClick(object sender, RoutedEventArgs e)
{
FileOpenPicker openPicker = new FileOpenPicker();
}
Ich bin sicher, das ist etwas super einfach, aber ich weiß es einfach nicht.
Edit:
Hier ist, wie ich es bin mit. Beachten Sie, dass die einfachere Funktion das Hang-Problem ohne all meinen zusätzlichen Code erzeugt. Ich habe die Bildspeicherung vollgestopft, aber das ist ein separates Problem, das ich debuggen möchte, wenn ich löse, worum es in diesem Beitrag geht.
.
public async Task ImportHeader()
{
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".png");
// For multiple image selection
var files = await openPicker.PickMultipleFilesAsync();
foreach (StorageFile singleImage in files)
{
IRandomAccessStream stream = await singleImage.OpenAsync(Windows.Storage.FileAccessMode.Read);
var image = new BitmapImage();
image.SetSource(stream);
HeaderImage.Source = image;
//We also save this to disk for later
Windows.Storage.StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
Windows.Storage.StorageFile file = await storageFolder.CreateFileAsync("header.jpg", Windows.Storage.CreationCollisionOption.ReplaceExisting);
stream.Seek(0);
using (StreamWriter bw = new StreamWriter(file.OpenStreamForWriteAsync().Result))
{
var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, stream);
var renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(HeaderImage, (int)HeaderImage.Width, (int)HeaderImage.Height);
var pixels = await renderTargetBitmap.GetPixelsAsync();
byte[] bytes = pixels.ToArray();
bw.Write(stream);
}
}
}
Ihr Codebeispiel scheint etwas zu vermissen. Wie genau zeigen Sie den Dateiauswahldialog an? –
Ich habe den Kontext des tatsächlichen Codes hinzugefügt, den ich verwende. Die einfachere erste Zeile jedoch erzeugt den Hang ohne all die anderen Sachen. – Jarryd
Beide Codebeispiele funktionieren auf meinem Computer einwandfrei, mit oder ohne Debugger. –