C# Windows phone picturebox

C# Windows phone picturebox,c#,windows-phone-8,windows-phone,windows-phone-8.1,C#,Windows Phone 8,Windows Phone,Windows Phone 8.1,我正在用C#开发一个windows phone 8.1应用程序。我正在用照相机拍照。图片保存在设备上,我正试图在图片盒中显示它。 我曾在HTC手机上测试过,效果不错,但当我在诺基亚Lumia上试用时,图片永远无法加载。 有人知道如何解决这个问题吗 下面是我为拍照而唱的代码: private void snap_task_Click(object sender, EventArgs e) { cameraCaptureTask = new CameraCapture

我正在用C#开发一个windows phone 8.1应用程序。我正在用照相机拍照。图片保存在设备上,我正试图在图片盒中显示它。 我曾在HTC手机上测试过,效果不错,但当我在诺基亚Lumia上试用时,图片永远无法加载。 有人知道如何解决这个问题吗

下面是我为拍照而唱的代码:

    private void snap_task_Click(object sender, EventArgs e)
    {
        cameraCaptureTask = new CameraCaptureTask();
        cameraCaptureTask.Completed += cameraCaptureTask_Completed;
        cameraCaptureTask.Show();

    }

    void cameraCaptureTask_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            NavigationService.Navigate(new Uri("/Slika.xaml?fotka=" + e.OriginalFileName, UriKind.Relative));

        }
    }
这是我尝试加载图片的代码

    public Slika()
    {
        InitializeComponent();
        string slika = string.Empty;
        string slika2 = string.Empty;
        this.Loaded += (s, e) =>
        {

            if (NavigationContext.QueryString.TryGetValue("fotka", out slika))
            {

                putanja = slika; /*"/Resources/" + slika + ".png";/**/

                int x = putanja.Length;

                if (x == 1)
                {
                    putanja = "/Resources/" + putanja + ".png";
                    uriPutanja = new Uri(putanja, UriKind.Relative);
                    fotka = new BitmapImage(uriPutanja);
                }
                else
                {
                    uriPutanja = new Uri(putanja, UriKind.Relative);
                    porukaTextBox.Text = putanja;
                    fotka = new BitmapImage(uriPutanja);
                }
            }
            img1.Source = fotka;

        };

    }
PS


从本地资源加载在两部手机上都可以正常工作,这只是“如果”的“其他”部分导致诺基亚出现问题。

您可以尝试将UriKind从相对更改为绝对。如果我理解了您的代码,您将获得图片的绝对路径。

根据我的理解,在其他情况下,您忘记了.png。

如果您正在手机的照相/摄像机滚动文件夹中保存图像,请尝试将其保存在存储卡上,然后再试一次(您只需在手机的设置中进行更改,然后说将新图片保存在SD卡上)如果可以,请尝试使用PhotoChooser任务获取图像。
    public Slika()
    {
        InitializeComponent();
        string slika = string.Empty;
        string slika2 = string.Empty;
        this.Loaded += (s, e) =>
        {

            if (NavigationContext.QueryString.TryGetValue("fotka", out slika))
            {

                putanja = slika; /*"/Resources/" + slika + ".png";/**/

                int x = putanja.Length;

                if (x == 1)
                {
                    putanja = "/Resources/" + putanja + ".png";
                    uriPutanja = new Uri(putanja, UriKind.Relative);
                    fotka = new BitmapImage(uriPutanja);
                }
                else
                {
                    uriPutanja = new Uri(putanja, UriKind.Relative);
                    porukaTextBox.Text = putanja;
                    fotka = new BitmapImage(uriPutanja);
                }
            }
            img1.Source = fotka;

        };

    }
我希望以下代码将对您有所帮助:

    using Microsoft.Phone.Tasks;
    using System.IO;
    using System.Windows.Media.Imaging;
    ...
    PhotoChooserTask selectphoto = null;
    private void button1_Click(object sender, RoutedEventArgs e)
    {
        selectphoto = new PhotoChooserTask();
        selectphoto.Completed += new EventHandler(selectphoto_Completed);
        selectphoto.Show();
    }
    void selectphoto_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            BinaryReader reader = new BinaryReader(e.ChosenPhoto);
            image1.Source = new BitmapImage(new Uri(e.OriginalFileName));
        }
    }

我已经试过了,但它仍然不起作用,我也尝试过将UriKind设置为Absolute或Relative,但也没有起作用。我也检查过,但图片是.jpg的,扩展名已经写在“putanja”中了字符串,所以我肯定这不是问题所在。此外,它在一部手机上工作。如果这是真的。在第一个If情况下,你必须进行扩展,但在其他情况下,这似乎很奇怪。这是我能看到的唯一问题。在第一个If情况下,我只知道保存在本地资源中的图片的名称,这就是为什么我需要要将路径添加到它和扩展名,在其他部分中,我将整个路径和扩展名保存在“putanja”字符串中,无论如何,感谢您的帮助:)图片保存在CameraRoll foder中,您必须从那里获取它。我知道它保存在那里,字符串“putanja”包含图片的整个路径,所以它应该工作吗?如果我做错了什么,你能发布一个代码示例吗?谢谢你的帮助,当我将图片保存到SD卡时,它现在可以工作了,我现在将尝试使用你的代码来选择照片