照片标签 [英] Photo Tags
本文介绍了照片标签的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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 :
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 |
{ |
str.Add(标签); |
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 = tag, zOrderzOrder = 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屋!
查看全文