Как мне заполнить список изображений из каталога? - PullRequest
0 голосов
/ 26 марта 2012

пытается загрузить кучу изображений в список из каталога ... мой код приведен ниже.

        string directory = @".\card_images\";
        List<Image> HandCards = new List<Image>();
foreach (string myFile in 
         Directory.GetFiles(directory,"*.png",SearchOption.AllDirectories))
        {
            HandCards.Add(myFile);
        }

Это, конечно, не работает, потому что строку нельзя преобразовать вImage, с другой стороны, если я попытаюсь превратить myFile в Image, то Directory.GetFiles тоже не будет работать, любая помощь будет признательна.Спасибо!

Ответы [ 4 ]

6 голосов
/ 26 марта 2012

Симпатичный лайнер:

var handCards = Directory.GetFiles(directory, "*.png", 
                                   SearchOption.AllDirectories)
                         .Select(Image.FromFile).ToList();
2 голосов
/ 26 марта 2012
string directory = @".\card_images\";
List<Image> HandCards = new List<Image>();
foreach (string myFile in
          Directory.GetFiles(directory, "*.png", SearchOption.AllDirectories))
{
    Image image = new Image();
    BitmapImage source = new BitmapImage();
    source.BeginInit();
    source.UriSource = new Uri(myFile, UriKind.Relative);
    source.EndInit();
    image.Source = source;

    HandCards.Add(image);
}
0 голосов
/ 26 марта 2012

Вам просто нужно связать (прочитайте это) коллекцию HandCards и использовать шаблон ItemTemplate до строки для Image.

например,

<ItemsControl ItemsSource="{Binding HandCards}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Image Source="{Binding}"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
0 голосов
/ 26 марта 2012

Попробуйте использовать Image.FromFile

Например:

string directory = @".\card_images\";
List<Image> HandCards = new List<Image>();
foreach (string myFile in Directory.GetFiles(directory,"*.png",SearchOption.AllDirectories))
{
    HandCards.Add(Image.FromFile(myFile));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...