1

私はフランス人なので、私の英語があまり上手でない場合は申し訳ありません.

NuGet Package UWP Toolkit を使用して AdaptiveGridView をページに挿入する UWP アプリケーションを使用しています。クリックできる写真がいくつか含まれています。

クリックごとに異なるアクションが必要です。例を次に示します。

Image1 をクリック = ページ 2 に移動

Image2 をクリック = ページ 3 に移動

これどうやってするの?これが私のコードです:

using Microsoft.Graph;
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.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.Navigation;

// Pour plus d'informations sur le modèle d'élément Page vierge, voir la page http://go.microsoft.com/fwlink/?LinkId=234238

namespace UWPOffice365cs
{
    /// <summary>
    /// Une page vide peut être utilisée seule ou constituer une page de destination au sein d'un frame.
    /// </summary>
    public sealed partial class PresentationExcelPage : Page
    {
        public PresentationExcelPage()
        {
            this.InitializeComponent();
        }

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            List<MyImage> data = new List<MyImage>();
            data.Add(new MyImage()
            {
                ImageUrl="ms-appx:///Assets/SurfaceTravail.png"

            });
            data.Add(new MyImage()
            {
                ImageUrl="ms-appx:///Assets/Ruban.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/feuilles.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/Donnees.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/ContenuCell.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/MEF.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/LignesColonnes.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/Marges.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/PiedPage.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/ZoneImprim.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/Imrpim.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/Calculs.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/Somme.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/AutresFonctions.png"
            });
            MyGrid.ItemsSource = data;
        }

        class MyImage
        {
            public string ImageUrl { get; set; }
        }

        private void Home_Click(object sender, RoutedEventArgs e)
        {
            Frame.Navigate(typeof(ExcelPage));
        }

        private async void OpenFonction_Click(object sender, RoutedEventArgs e)
        {
            StorageFolder openexcel = Windows.ApplicationModel.Package.Current.InstalledLocation;
            StorageFile file = await openexcel.GetFileAsync("ExerciceExcel.xlsx");
            await Windows.System.Launcher.LaunchFileAsync(file);
        }

        private void MyGrid_ItemClick(object sender, ItemClickEventArgs e)
        {
            Frame.Navigate(typeof(testpage),e.ClickedItem);
      }
    }
}
4

1 に答える 1

1

移動先のページがわかっている場合は、移動先のページの種類で MyImage クラスにプロパティを追加できない理由はありません。次に例を示します。

class MyImage
{
    public string ImageUrl { get; set; }
    public Type Page { get; set; }
}

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    List<MyImage> data = new List<MyImage>();
    data.Add(new MyImage()
    {
        ImageUrl = "ms-appx:///Assets/SurfaceTravail.png",
        Page = typeof(MainPage)
    });
    // ... 
}

次に、アイテムをクリックすると、代わりに次のようになります。

private void MyGrid_ItemClick(object sender, ItemClickEventArgs e)
{
    var item = e.ClickedItem as MyImage;
    if (item != null)
    {
        Frame.Navigate(item.Page, item);
    }
}

これが役立つことを願っています。

于 2016-11-20T11:39:50.950 に答える