日期:2014-05-16  浏览次数:20713 次

[Win8]Windows8开发笔记(三):代码读取图片动态生成页面

新建一个项目,叫做LianliankanTest。

新建一个文件夹Images用来存储图片,我们拖动10个图片进入到文件夹中:



打开MainPage.xaml.cs,找到重写的OnNavigatedTo方法。这个方法实在跳转到该页面的时候调用,所以我们把页面的动态初始化加在这里。

前面说到,Grid布局中主要是RowDefinition和ColumnDefinition来生成行列,我们先在MainPage.xaml中定义主页面的Grid的name为homepage,以便后台调用。

然后在MainPage.xaml.cs,找到重写的OnNavigatedTo方法,写上动态添加的行列定义:

protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            for (int i = 0; i < 10; i++)
            {
                RowDefinition row = new RowDefinition();
                homepage.RowDefinitions.Add(row);
            }

            for (int i = 0; i < 10; i++)
            {
                ColumnDefinition col = new ColumnDefinition();
                homepage.ColumnDefinitions.Add(col);
            }

            Random random = new Random();
            for (int row = 0; row < 10; row++)
            {
                for (int col = 0; col < 10; col++)
                {
                    Image img = new Image();
                    int num = random.Next(1, 10);
                    string fileName = "ms-appx:///Images/" + num + ".jpg";
                    //指定图片元素
                    img.Source = new BitmapImage(new Uri(fileName));

                    //为其指定某行某列
                    homepage.Children.Add(img);
                    Grid.SetRow(img, row);
                    Grid.SetColumn(img, col);

                }
            }
        }

其中,ms-appx:///是为了指定当前路径。如果位于项目中,需要指定ms-appx:///

运行一下就能看到 页面的效果: