1

我是法国人,所以如果我的英语不是很好,我很抱歉。

我正在使用 NuGet 包 UWP 工具包将 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 回答