如何为图像文件夹使用xml文件?

我真的是WPF和XML的新手。我有一个图像文件夹和一个xml文件(XML文件中有我的图像文件夹的名称和图像名称)。如何通过xml从文件中调用我的图像,并用它们列出列表?

谢谢。 (我的图像文件夹位于我的桌面以及Project Debug文件夹中。)

XML示例

<Item>
    <Title>
        Image 1
    </Title>
    <Image>
        <Image FolderName="Images">1.jpg</Image>
    </Image>
</Item>

我被卡住的地方。

void LoadImages()
    {
        XDocument xml = XDocument.Load("images.xml");

        picList = new List<Picture>();

        var pics = (from item in xml.Descendants("Item")
                     select new Picture
                     {

                         Title = (string)item.Element("Title").Value,Img = (BitmapImage(?????????))item.Element("Image")???

                     }).ToList();

        foreach (var item in pics)
        {
            picList.Add(item);
        }

        imgList.ItemsSource = picList;
    }

我的图片课

     public class Picture
    {

        public BitmapImage Img { get; set; }
        public string Title { get; set; }
    }
yearf 回答:如何为图像文件夹使用xml文件?

将XML结构更改为如下所示,每个<Image>仅包含一个<Item>元素。

<Item>
    <Title>Image 1</Title>
    <Image FolderName="Images">1.jpg</Image>
</Item>

然后这应该适用于相对的图像路径:

public void LoadImages()
{
    imgList.ItemsSource = XDocument.Load("images.xml")
        .Descendants("Item")
        .Select(item =>
    {
        var title = item.Element("Title").Value;
        var folder = item.Element("Image").Attribute("FolderName").Value;
        var file = item.Element("Image").Value;
        var path = Path.Combine(folder,file);

        return new Picture
        {
            Title = title,Img = new BitmapImage(new Uri(path,UriKind.Relative))
        };
    });
}

如果需要绝对文件路径,可以将图像根文件夹添加到Path.Combine调用中,然后删除UriKind.Relative

您还应该声明如下所示的Picture类,以便在可以传递给Img属性的类型范围内获得更大的灵活性:

public class Picture
{
    public ImageSource Img { get; set; }
    public string Title { get; set; }
}
本文链接:https://www.f2er.com/3145288.html

大家都在问