///给Grid添加10列
for (int i = 0; i < 10; i++)
{
llk.ColumnDefinitions.Add(new ColumnDefinition());
}
///给 Grid添加10行
for (int j = 0; j < 10; j++)
{
llk.RowDefinitions.Add(new RowDefinition());
}
2.读取连连看小图标文件路径存放于List中:首先读取到应用程度的根路径,然后获取指定根路径下指定的文件夹,并读取文件夹下的文件,将其添加到List中。
///获取程序中图标文件
StorageFolder InstallFolder = Package.Current.InstalledLocation;////获得程序的安装路径
var ImgFolder =await InstallFolder.GetFolderAsync("Images");
var ImgFiles =await ImgFolder.GetFilesAsync(); ////获得Images文件夹下的图片
List ImgList=new List(); ///将读取的图片文件添加到List中
foreach (var ImgFile in ImgFiles)
{
string FilePath = "ms-appx:///Images/"+ImgFile.Name;
ImgList.Add(FilePath);
}
3.因为是10行10列所以我只是放了50*2(方便两两配对)个随机的小图标。
List ImgCount = new List();
for (int k = 0; k < rows * clos / 2; k++)
{
int ListNum = new Random(k+DateTime.Now.Millisecond).Next(ImgList.Count - 1);
ImgCount.Add(ImgList[ListNum]); ////添加两次 方便配对的
ImgCount.Add(ImgList[ListNum]);
}
4.将第三步中的100个小图标添加到10行10列的表格中。
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < clos; j++)
{
Image img = new Image();
img.Name = i.ToString() + j.ToString();
int SourceNum = new Random(i+j+DateTime.Now.Millisecond).Next(ImgCount.Count - 1);
BitmapImage bitmap = new BitmapImage(new Uri(ImgCount[SourceNum]));
ImgCount.RemoveAt(SourceNum);
img.Source = bitmap;
img.Tapped += img_Tapped;
llk.Children.Add(img);
Grid.SetColumn(img, i);
Grid.SetRow(img, j);
}
}
5.现在已经显示到页面上了,我对每个Image添加了一个事件 ( img.Tapped += img_Tapped)
暂时就是将Image转换为BitmapImage判断两个小图标的Source,也就是文件路径是否一样,当然Image的文件名不能一样(就是同一个图标点了两次)。