0

Arrayと呼ばれるWPFコントロールへのソースに入れる方法はImage? このフォーラムを見つけましたが、配列を作成するにはどうすればよいですか?

BitmapImage logo = new BitmapImage()
logo.BeginInit();
logo.UriSource = new Uri("pack://application:,,,/img/3.jpg");
logo.EndInit();

tmpimage.Source = logo;

しかし、私はこのような何かが必要です:

Image[] img = new Image[3];
img[0].Source = new Uri("pack://application:,,,/img/3.jpg");
tmpimage.Source = img[0];
4

2 に答える 2

2
Image[] images = new Image[3] { new Image(), new Image(), new Image() };
images[0].Source = new BitmapImage(new Uri("pack://application:,,,/img/3.jpg"));
images[1].Source = new BitmapImage... // etc...

または、イメージ ファクトリを関数にして LINQ を使用します。

Image CreateBitmap(string uri)
{ 
    return new Image() { Source = new BitmapImage(new Uri(uri)) };
}

Image[] GetImages()
{
    var imageUris = new[]
    {
        "pack://application:,,,/img/3.jpg", 
        "pack://application:,,,/img/elephant.jpg", 
        "pack://application:,,,/img/banana.jpg"
    };
    return imageUris.Select(CreateBitmap).ToArray();
}
于 2013-04-04T16:35:51.577 に答える
1

BitmapImage の動的配列:

    BitmapImage[] iHab;

    BitmapImage CreateBitmap(string uri)
        { 
        return new BitmapImage(new Uri(uri));
        }

    BitmapImage[] GetImages()
        {
        string currDir = Directory.GetCurrentDirectory();
        string[] imageUris;

        //Get directory path of myData 
        string temp = currDir + "\\Media\\hcia\\";
        imageUris = Directory.GetFiles(temp, "habitation*.png");
        return imageUris.Select(CreateBitmap).ToArray();  
        }

    private void Rec_hab_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        iHab = GetImages();
        pointer.Source = iHab[7]; // the 7th image : can be manipulated with an i++
    }
于 2014-01-30T04:24:21.223 に答える