The TreeMap is a control that displays hierarchical data as
a collection of nested rectangles whose area (and other properties) is
proportional to selected metrics within that data. TreeMap control shipts with
Silverlight 3 Toolkit.
Crating Silverlight Project
Fire up Blend 3 and create a Silverlight Application. Name
it as TreeMapInSL3.
![TreeMapImg1.gif]()
Go ahead and find the control in Asset Library. You will get
the below result.
![TreeMapImg2.gif]()
Add this control to your application.
We need sample data for displaying in TreeMap so add a class
named DriveData.cs.
![TreeMapImg3.gif]()
Now add the code to the Class you just created.
public class DriveData
{
public string DataType { set;
get; }
public double SizeOccupied { set;
get; }
public string ToolTip
{
get
{
return
DataType + ": " + SizeOccupied + " GB";
}
}
}
Now add a
DataGrid to your application, it has nothing to do with TreeMap. DataGrid is
for displaying the sample data only.
<data:DataGrid x:Name="MyDataGrid" AutoGenerateColumns="False" HorizontalAlignment="Center" VerticalAlignment="Center" Width="300" Height="200">
<data:DataGrid.Columns>
<data:DataGridTextColumn IsReadOnly="True" Header="DataType" Binding="{Binding DataType}"/>
<data:DataGridTextColumn IsReadOnly="True" Header="SizeOccupied" Binding="{Binding SizeOccupied}"/>
</data:DataGrid.Columns>
</data:DataGrid>
As you see from above xaml code, the columns are bind to the
Properties.
Now we will do the same for the TreeMap follow the below
xaml:
<visualizationToolkit:TreeMap x:Name="MyTreeMap" HorizontalAlignment="Center" Margin="0" VerticalAlignment="Center" Grid.Column="1" Width="300" Height="300">
<visualizationToolkit:TreeMap.ItemDefinition>
<visualizationToolkit:TreeMapItemDefinition ValuePath="SizeOccupied">
<DataTemplate>
<Border Background="LightYellow" BorderBrush="Black" BorderThickness="1" ToolTipService.ToolTip="{Binding ToolTip}">
<TextBlock Text="{Binding DataType}" VerticalAlignment="Center" TextAlignment="Center" TextWrapping="Wrap"/>
</Border>
</DataTemplate>
</visualizationToolkit:TreeMapItemDefinition>
</visualizationToolkit:TreeMap.ItemDefinition>
</visualizationToolkit:TreeMap>
Now that we have bind everything those are required, we will
give some data to the DataGrid and TreeMap.
Add the following code:
List<DriveData> myList = new
List<DriveData>
{
new
DriveData{ DataType="Image",
SizeOccupied=1.2},
new
DriveData{ DataType="PDF",
SizeOccupied=0.3},
new
DriveData{ DataType="Word",
SizeOccupied=0.5},
new
DriveData{ DataType="Movies",
SizeOccupied=4.5},
new
DriveData{ DataType="XPS",
SizeOccupied=0.6},
new
DriveData{ DataType="EXE",
SizeOccupied=12.5},
};
MyDataGrid.ItemsSource = myList;
MyTreeMap.ItemsSource = myList;
Everything is done. Now run your application to see the
output:
![TreeMapImg4.gif]()
Now if you mouse hover any TreeMap Content you will get the
tooltip as follows:
![TreeMapImg5.gif]()
That's it you have successfully used the TreeMap control.
Play with it more to know more.
Enjoy Coding.