照片标签 [英] Photo Tags

查看:96
本文介绍了照片标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hi All

我使用DZC创建了一个集合,并为每张照片添加了一些标签。我看过Kirupa关于如何使用标签进行过滤的教程,但我想过滤多个标签。

我知道有一个由Craig编写的教程,它对上面的教程做了评论,但是代码已经过时了有些元素不起作用。

有没有人设法实现多标签解决方案,如果是这样,他们可以解释如何修改page.xaml和page.cs以使其工作

提前谢谢

蒂姆


Hi All

I have created a collection using DZC and have added some tags to each photo. I saw Kirupa's tutorial on how to filter using the tags however i want to filter on multiple tags.

I know there is a tutorial written by Craig which made comments on the above tutorial but the code is out of date and there are elements that dont work.

Has anyone manage to implement a multiple tag solution, if so could they explain how to amend the page.xaml and page.cs to get it to work

thanks in advance

Tim


推荐答案

你好蒂姆,

我已经通过了Kirupa的教程并且能够使用标签过滤图像。
这是我做的

msi_ImageOpenSucceeded()调用LoadXMLData()函数

在LoadXMLData:
Hi Tim,

I have gone through the Kirupa's tutorial and have been able to filter the images using tags.
Here is wht i did

in msi_ImageOpenSucceeded() call LoadXMLData() funtion

In LoadXMLData :









< tr>






























































































str.Add(标签);

















private void LoadXMLData()
{
WebClient xmlClient = new WebClient();
xmlClient.DownloadStringCompleted + = new DownloadStringCompletedEventHandler(DownloadStringCompleted);
xmlClient.DownloadStringAsync(new Uri(" GeneratedImages / Metadata.xml",UriKind.Relative));
}
void DownloadStringCompleted(object sender,DownloadStringCompletedEventArgs e)
{
列表 < string > ; str = new 列表 < string > ();
if( e.Error < font style ="font-size:11px"> == null)
{
XDocument metadataXML = XDocument .Parse(e.Result); //使用Linq for XML解析XML比使用XmlReader更容易
XElement metaDataElement = metadataXML 。元素("元数据");
var imageItems = 来自 g in metaDataElement.Descendants()
其中 g。名称 =="图像"
select g;
listOfImagesTagged = new List < MultiScaleSubImage > ();
listOfAllImages = new 列表 < DZImageReference > ();
列表 < MultiScaleSubImage > imageList = 列表 < MultiScaleSubImage > ();
foreach(imageItems中的XElement g)
{
string tag = g.Element(QUOT;标签")。值;
if( tag =="")
{
标签 = " None" ;
}
int zOrder = int .Parse(g.Element(" ZOrder")。Value) - 1;
DZImageReference imageRef = DZImageReference(){ 标记 = 标签 zOrder zOrder = zOrder, SubImage = msi .SubImages [zOrder]};
if(!uniqueTags.ContainsKey(tag))
{
ListBoxItem lbi = new ListBoxItem();
lbi.Content = 标记 ;
uniqueTags.Add(tag,tag);
if( tag ==" None")
{
str.Add(标签);
TagListbox.Items.Insert(1,lbi);
}
else
{
TagListbox.Items.Add(lbi);
}
}
listOfAllImages.Add(imageRef);
}
str.Sort();
FilterImages("All");
}
}
private void LoadXMLData()  
        {  
            WebClient xmlClient = new WebClient();  
            xmlClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCompleted);  
            xmlClient.DownloadStringAsync(new Uri("GeneratedImages/Metadata.xml", UriKind.Relative));  
        }  
          
        void DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)  
        {  
            List<string> str = new List<string>();  
            if (e.Error == null)  
            {  
                XDocument metadataXML = XDocument.Parse(e.Result); // using Linq for XML to parse out the XML is easier than using XmlReader  
                XElement metaDataElement = metadataXML.Element("Metadata");  
                var imageItems = from g in metaDataElement.Descendants()  
                                 where g.Name == "Image"  
                                 select g;  
 
                listOfImagesTagged = new List<MultiScaleSubImage>();  
                listOfAllImages = new List<DZImageReference>();  
 
                List<MultiScaleSubImage> imageList = new List<MultiScaleSubImage>();  
 
                foreach (XElement g in imageItems)  
                {  
                    string tag = g.Element("Tag").Value;  
 
                    if (tag == "")  
                    {  
                        tag = "None";  
                    }  
                    int zOrder = int.Parse(g.Element("ZOrder").Value) - 1;  
 
                    DZImageReference imageRef = new DZImageReference() { Tag = tagzOrderzOrder = zOrder, SubImage = msi.SubImages[zOrder] };  
 
                    if (!uniqueTags.ContainsKey(tag))  
                    {  
                        ListBoxItem lbi = new ListBoxItem();  
                        lbi.Content = tag;  
 
                        uniqueTags.Add(tag, tag);  
 
                        if (tag == "None")  
                        {  
                            str.Add(tag);  
                            TagListbox.Items.Insert(1, lbi);  
                        }  
                        else  
                        {  
                            str.Add(tag);  
                            TagListbox.Items.Add(lbi);  
                        }  
                    }  
                    listOfAllImages.Add(imageRef);  
                }  
                str.Sort();  
                FilterImages("All");  
            }  
        } 


这篇关于照片标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆