如何在UWP中以完整尺寸打开图像

时间:2016-10-05 13:15:57

标签: image xaml xamarin uwp

我正在开发聊天应用:

Chat

如果用户点按图片,则会以完整尺寸显示。调用以下方法:

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;
        }
    }

哪些电话(取决于操作系统):

Android中的

openImage()

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..."));
    }
iOS中的

openImage()

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);
    }

现在我想在UWP中创建方法openImage(),但我不知道。我知道我很可能不得不将图像用作StorageFile而不是路径,因为只有StorageFile授予我打开图像的权限。

有没有办法在UWP中以完整尺寸打开图像?我更倾向于不为此创建新视图。

1 个答案:

答案 0 :(得分:0)

Launcher可以使用分配给该文件的程序打开文件:

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

根据我的情况,我使用filePath工作,因为文件位于本地文件夹中。

输出如下:

enter image description here