2014-02-09 17 views
1

我將Windows Phone 8應用程序移植到Windows 8,我需要選擇一張圖片並設置圖片的源代碼!我今天必須移植它。我用這個:如何選擇和使用Windows中的圖像8

FileOpenPicker openPicker = new FileOpenPicker(); 
openPicker.ViewMode = PickerViewMode.Thumbnail; 
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; 
openPicker.FileTypeFilter.Add(".jpg"); 
openPicker.FileTypeFilter.Add(".jpeg"); 
openPicker.FileTypeFilter.Add(".png"); 

Windows.Storage.StorageFile file = await openPicker.PickSingleFileAsync(); 

if (file != null) 
{ 
    BitmapImage img = new BitmapImage() { UriSource = new Uri((file.Path + file.DisplayName + file.FileType), UriKind.RelativeOrAbsolute) }; 
    image.Source = img; 
} 
else 
{ 
} 

它選擇的圖像,但它並沒有改變源,我也用:

FileOpenPicker openPicker = new FileOpenPicker(); 
openPicker.ViewMode = PickerViewMode.Thumbnail; 
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary; 
openPicker.FileTypeFilter.Add(".jpg"); 
openPicker.FileTypeFilter.Add(".jpeg"); 
openPicker.FileTypeFilter.Add(".png"); 

Windows.Storage.StorageFile file = await openPicker.PickSingleFileAsync(); 

if (file != null) 
{ 
    BitmapImage img = new BitmapImage() { UriSource = new Uri(file.Path, UriKind.RelativeOrAbsolute) }; 
    bustin.Source = img; 
    dt.Start(); 
    oyunsure.Start(); 
} 
else 
{ 
    dt.Start(); 
    oyunsure.Start(); 
} 

但兩者沒有工作。

回答

4

在這裏你去:

這是一個有點棘手超出你的想象。

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Runtime.InteropServices.WindowsRuntime; 
using Windows.Foundation; 
using Windows.Foundation.Collections; 
using Windows.Storage; 
using Windows.Storage.Pickers; 
using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Controls.Primitives; 
using Windows.UI.Xaml.Data; 
using Windows.UI.Xaml.Input; 
using Windows.UI.Xaml.Media; 
using Windows.UI.Xaml.Media.Imaging; 
using Windows.UI.Xaml.Navigation; 

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238 

namespace App1 
{ 
    /// <summary> 
    /// An empty page that can be used on its own or navigated to within a Frame. 
    /// </summary> 
    public sealed partial class MainPage : Page 
    { 
     public MainPage() 
     { 
      this.InitializeComponent(); 
     } 

     protected override async void OnNavigatedTo(NavigationEventArgs e) 
     { 
      FileOpenPicker opener = new FileOpenPicker(); 
      opener.ViewMode = PickerViewMode.Thumbnail; 
      opener.SuggestedStartLocation = PickerLocationId.PicturesLibrary; 
      opener.FileTypeFilter.Add(".jpg"); 
      opener.FileTypeFilter.Add(".jpeg"); 
      opener.FileTypeFilter.Add(".png"); 

      StorageFile file = await opener.PickSingleFileAsync(); 
      if (file != null) 
      { 
       // We've now got the file. Do something with it. 
       var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); 
       var bitmapImage = new Windows.UI.Xaml.Media.Imaging.BitmapImage(); 
       await bitmapImage.SetSourceAsync(stream); 
       bustin.Source = bitmapImage; 
       var decoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(stream); 
      } 
      else 
      { 
       //OutputTextBlock.Text = "The operation may have been cancelled."; 
      } 

     } 
    } 
} 
+1

omg!這是我所需要的:)我甚至可以複製粘貼:)謝謝:) – Ave

+0

不客氣:) – 0550

3

我已經編寫了這個代碼來挑選圖像並在圖像控制中顯示它.. 它正在工作。

public async Task<bool> pickPhoto() 
    { 
     FileOpenPicker openPicker = new FileOpenPicker(); 
     openPicker.ViewMode = PickerViewMode.List; 
     openPicker.SuggestedStartLocation = PickerLocationId.Desktop; 
     openPicker.FileTypeFilter.Add("*"); 

     StorageFile file = await openPicker.PickSingleFileAsync(); 
     if (file != null) 
     { 
      var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); 
      BitmapImage image = new BitmapImage(); 
      image.SetSource(stream); 
      imageChangedProfilePic.Source = image; 
      imageChangedProfilePic.Stretch = Stretch.Fill; 
      return true; 
     } 
     else 
     { 
      // OutputTextBlock.Text = "Operation cancelled."; 
      return false; 
     } 

    } 
相關問題