我有一个图像列表,然后我创建一个网格并插入一个图像和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时,我可以下载图像。
有没有办法如果用户点击grid,text1或text2它会调用该函数?我在考虑
Username.Parent
但我不知道'家长'确切地说,它会得到网格吗?
答案 0 :(得分:1)
我认为你正在努力处理这个事件。
对我来说,我会创建一个List,将列表绑定到列表视图,其项目模板与您的布局类似。 Item对象将保存图像的ID。
然后,我处理Grid的click事件(所以无论用户点击哪个,处理程序都会被触发),我得到sender对象,获取发送者的DataContext(绑定到ListViewItem的Item)。使用项目中的ID下载图像。