1

これは、ローカル フォルダーからアプリ ストレージ フォルダーに 1 つの画像をコピーし、タイル通知を表示するコードです。すべての画像をコピーしてから、タイル通知に表示されるこれらの画像をコピーするのを手伝ってください。

namespace Tiles
{
    public sealed partial class BlankPage : Page
    {
        string imageRelativePath = String.Empty;

        public BlankPage()
        {
            this.InitializeComponent();
            CopyImages();
        }

        public async void CopyImages()
        {

            FileOpenPicker picker = new Windows.Storage.Pickers.FileOpenPicker();
            picker.ViewMode = PickerViewMode.Thumbnail;
            picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
            picker.FileTypeFilter.Add(".jpg");
            picker.FileTypeFilter.Add(".jpeg");
            picker.FileTypeFilter.Add(".png");
            picker.CommitButtonText = "Copy";
            StorageFile file = await picker.PickSingleFileAsync();
            StorageFile newFile = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync(file.Name);
            await file.CopyAndReplaceAsync(newFile);
            this.imageRelativePath = newFile.Path.Substring(newFile.Path.LastIndexOf("\\") + 1);

                    IWideTileNotificationContent tileContent = null;
                    ITileWideImage wideContent = TileContentFactory.CreateTileWideImage();
                    wideContent.RequireSquareContent = false;
                    wideContent.Image.Src = "ms-appdata:///local/" + this.imageRelativePath;
                    wideContent.Image.Alt = "App data";
                    tileContent = wideContent;
                    tileContent.RequireSquareContent = false;
                    TileUpdateManager.CreateTileUpdaterForApplication().Update(tileContent.CreateNotification());
                }
            }
        }
4

1 に答える 1

0

を呼び出す代わりに、 を呼び出す.PickSingleFileAsync()必要があります.PickMultipleFileAsync()。返されるすべてのファイル名を取得する方法の例については、PickMultipleFileAsync ドキュメントを参照してください。

1 つのファイルをコピーしてタイルを作成するコードは、返されたすべてのファイルを通過するループで囲む必要があります。.PickMultipleFileAsync()

私はこれをテストしませんでしたが、次のようになります。

FilePickerSelectedFilesArray  files = await picker.PickMultipleFileAsync(); 
for (var i = 0; i < files.size; i++) 
{
     StorageFile newFile = await 
             Windows.Storage.ApplicationData.Current.LocalFolder
             .CreateFileAsync(files[1].Name); 
    await file.CopyAndReplaceAsync(newFile); 
    this.imageRelativePath = newFile.Path.Substring(
           newFile.Path.LastIndexOf("\\") + 1); 
    IWideTileNotificationContent tileContent = null; 
    ITileWideImage wideContent = TileContentFactory.CreateTileWideImage(); 
    wideContent.RequireSquareContent = false; 
    wideContent.Image.Src = "ms-appdata:///local/" + this.imageRelativePath; 
    wideContent.Image.Alt = "App data"; 
    tileContent = wideContent; 
    tileContent.RequireSquareContent = false; 
    TileUpdateManager.CreateTileUpdaterForApplication().Update(
          tileContent.CreateNotification()); 
} 
于 2012-04-19T15:18:15.353 に答える