public Page()
{
InitializeComponent();
Uri url = new Uri("MapImages.xml", UriKind.Relative);
WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
client.DownloadStringAsync(url);
}
void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
if (e.Error == null)
{
TreeViewItem areaItem = null;
TreeView tv = new TreeView();
TreeViewItem rootItem = new TreeViewItem();
rootItem.Header = "Images";
tv.Items.Add(rootItem);
StringReader stream = new StringReader(e.Result);
XmlReader reader = XmlReader.Create(stream);
string imageName = String.Empty;
string areaName = String.Empty;
string fileName = String.Empty;
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name == "Area")
{
if (true == reader.MoveToFirstAttribute())
{
areaName = reader.Value;
areaItem = new TreeViewItem();
areaItem.Header = areaName;
rootItem.Items.Add(areaItem);
}
}
else if (reader.Name == "Image")
{
if (true == reader.MoveToFirstAttribute())
{
imageName = reader.Value;
}
}
}
else if (reader.NodeType == XmlNodeType.Text)
{
fileName = reader.Value;
TreeViewItem imageItem = new TreeViewItem();
imageItem.Header = imageName;
imageItem.Tag = fileName;
if (null != areaItem)
areaItem.Items.Add(imageItem);
}
}
MainCanvas.Children.Add(tv); // Add the treeview to our main canvas.
}
}