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
但我不知道"父"到底做了什么,它会得到网格吗?
我认为你正在做艰难的方式来处理这个Senario。
对我来说,我会创建一个列表,使用类似于您的布局的项目模板将列表绑定到列表视图。Item 对象将保存图像的 ID。
然后,我处理网格的单击事件(因此,无论用户点击何处,处理程序都将被触发),我获取发送方对象,获取发送方的数据上下文(绑定到 ListViewItem 的项)。使用项目中的 ID 下载映像。