2016-10-05 3 views
0

ich auf einem Chat-App arbeite:Wie kann ich öffnen Sie ein Bild in es in UWP in voller Größe ist

Chat

Wenn der Benutzer auf einem Bild tippt, um es in voller Größe zeigen. Die folgende Methode wird aufgerufen:

Handle_Tapped():

void Handle_Tapped(object sender, System.EventArgs e) 
    { 
     try 
     { 
      Image image = sender as Image; 
      string filePath = String.Empty; 

      filePath = image.Source as FileImageSource; 
      Eva3Toolkit.CommonUtils.openImage(filePath); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

Welche (je nach Betriebssystem) ruft:

openImage() in Android:

public void openImage(string filePath) 
    { 
     Intent sendIntent = new Intent(Intent.ActionView); 
     sendIntent.SetDataAndType(Android.Net.Uri.Parse("file:" + filePath), "image/*"); 
     Forms.Context.StartActivity(Intent.CreateChooser(sendIntent, "Bild öffnen...")); 
    } 

openImage() in iOS:

public void openImage(string filePath) 
    { 
     var firstController = ((UIApplicationDelegate)(UIApplication.SharedApplication.Delegate)).Window.RootViewController.ChildViewControllers[0].ChildViewControllers[1].ChildViewControllers[0]; 
     var navcontroller = firstController as UINavigationController; 
     var docIC = UIDocumentInteractionController.FromUrl(new NSUrl(filePath, true)); 
     docIC.Delegate = new DocInteractionC(navcontroller); 
     docIC.PresentPreview(true); 
    } 

Jetzt möchte ich eine Methode openImage() in UWP zu schaffen, aber ich weiß nicht wissen. Ich weiß, dass ich wahrscheinlich mit dem Bild als StorageFile anstelle des Pfades arbeiten muss, da nur eine StorageFile mir die Erlaubnis erteilt, das Bild zu öffnen.

Gibt es eine Möglichkeit, das Bild in voller Größe in UWP zu öffnen? Ich bevorzuge es, keine neue Ansicht dafür zu erstellen.

Antwort

0

A Launcher können eine Datei mit dem Programm öffnen, die in der Datei zugeordnet:

public async void openImageAsync(string filePath) 
    { 
     StorageFile storageFile = await StorageFile.GetFileFromPathAsync(filePath); 
     await Launcher.LaunchFileAsync(storageFile); 
    } 

Für meine Situation es funktioniert, dass ich filePath verwenden, da die Dateien in einem lokalen Ordner befinden.

Die Ausgabe sieht wie folgt aus:

enter image description here

Verwandte Themen