UWP C# 获取单击的项目的网格

本文关键字:项目 网格 单击 获取 UWP | 更新日期: 2023-09-27 18:30:56

我有一个图像列表,然后我制作一个网格并插入一个图像和 2 个文本,所以网格看起来像这样:

-----------------------------------
|    | Text 1
|    |   Text 2
-----------------------------------

这些网格只是堆叠在一起。

制作网格的代码:

img = new Image();
            img.Source = new BitmapImage(new Uri(this.BaseUri, "/Assets/test/Images/test.png"));
            img.HorizontalAlignment = HorizontalAlignment.Center;
            img.VerticalAlignment = VerticalAlignment.Center;
            img.Width = 30;
            img.Height = 30;
            username = new TextBlock();
            username.Name = "1"
            username.Tapped += "tapped_func";
            username.Text = "Text 1";
            username.FontSize = 24;
            txt = new TextBlock();
            txt.Text = "Text 2";
            txt.FontSize = 14;
            var grid_item = new Grid();
            RowDefinition r0 = new RowDefinition();
            r0.Height = new GridLength(0, GridUnitType.Auto);
            RowDefinition r1 = new RowDefinition();
            r1.Height = new GridLength(0, GridUnitType.Auto);
            ColumnDefinition c0 = new ColumnDefinition();
            c0.Width = new GridLength(.50, GridUnitType.Star);
            ColumnDefinition c1 = new ColumnDefinition();
            c1.Width = new GridLength(5, GridUnitType.Star);
            grid_item.Margin = new Thickness(10);
            grid_item.RowDefinitions.Add(r0);
            grid_item.RowDefinitions.Add(r1);
            grid_item.ColumnDefinitions.Add(c0);
            grid_item.ColumnDefinitions.Add(c1);
            Grid.SetColumn(img, 0);
            Grid.SetRowSpan(img, 2);
            Grid.SetColumn(username, 1);
            Grid.SetColumn(txt, 1);
            Grid.SetRow(txt, 1);
            grid_item.Children.Add(img);
            grid_item.Children.Add(username);
            grid_item.Children.Add(txt);

图像在左侧,2 个文本块在右侧。目前,我将图像的ID设置为文本1的名称,然后当用户单击文本1时,我可以下载图像。

有没有办法让用户单击网格、text1 或 text2 时调用该函数?我在想

Username.Parent

但我不知道"父"到底做了什么,它会得到网格吗?

UWP C# 获取单击的项目的网格

我认为你正在做艰难的方式来处理这个Senario。

对我来说,我会创建一个列表,使用类似于您的布局的项目模板将列表绑定到列表视图。Item 对象将保存图像的 ID。

然后,我

处理网格的单击事件(因此,无论用户点击何处,处理程序都将被触发),我获取发送方对象,获取发送方的数据上下文(绑定到 ListViewItem 的项)。使用项目中的 ID 下载映像。