Backward Compatibility
Q3 2014
-
Panel of RadTileList is TileListGroupPanel rather than TileListPanel
-
Each group is represented by TileGroupContainer rather than ContentControl
-
Group property of Tile is now a TileGroup type rather than just an object
-
Group property of Tile is not settable and you can only read its value
Before:
Example 1: RadTileList before Q3 2014
<Grid.Resources>
<telerik:TileGroup Header="Continent" x:Key="Group1" />
<telerik:TileGroup Header="Country" x:Key="Group2" />
</Grid.Resources>
<!--<telerik:RadTileList x:Name="RadTileList"
GroupTemplate="{StaticResource GroupTemplate}">
<telerik:Tile Group="{StaticResource Group1}" Content="Europe" />
<telerik:Tile Group="{StaticResource Group2}" Content="Germany" />
<telerik:Tile Group="{StaticResource Group1}" Content="Asia" />
<telerik:Tile Group="{StaticResource Group2}" Content="Italy" />
</telerik:RadTileList>-->
After Q3 2014
Example 2: RadTileList after Q3 2014
<telerik:RadTileList x:Name="RadTileList">
<telerik:RadTileList.Groups>
<telerik:TileGroup Header="Continent">
<telerik:TileGroup.Items>
<telerik:Tile Content="Asia"/>
<telerik:Tile Content="Europe"/>
</telerik:TileGroup.Items>
</telerik:TileGroup>
<telerik:TileGroup Header="Country">
<telerik:TileGroup.Items>
<telerik:Tile Content="Italy"/>
<telerik:Tile Content="Germany"/>
</telerik:TileGroup.Items>
</telerik:TileGroup>
</telerik:RadTileList.Groups>
</telerik:RadTileList>
-
Group property of Tile cannot be set through Style since it can be only read. Since Tile belongs to a group you need to add it in its Items collection when they are manually generated or set GroupMember property of TileList when bound to data source.
-
Since each group is now represented of TileGroupContainer, if you have custom theme, you need to copy the style for this control in the template of RadTileList:
Example 3: Setting a Style for TileGroupContainer
<DataTemplate x:Key="GroupTemplate">
<ContentPresenter Content="{Binding Header}"/>
</DataTemplate>
<ItemsPanelTemplate x:Key="GroupPanelTemplate">
<telerik:TileListPanel x:Name="groupPanelTemplatePanel" VerticalAlignment="{Binding VerticalTilesAlignment, RelativeSource={RelativeSource AncestorType=telerik:RadTileList}}"/>
</ItemsPanelTemplate>
<ControlTemplate x:Key="TileGroupContainerTemplate" TargetType="telerik:TileGroupContainer">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="{Binding GroupHeaderHeight, RelativeSource={RelativeSource AncestorType=telerik:RadTileList}}"/>
<RowDefinition />
</Grid.RowDefinitions>
<ContentPresenter Content="{Binding Header}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Visibility="{Binding GroupHeaderVisibility, RelativeSource={RelativeSource AncestorType=telerik:RadTileList}}"
ContentTemplate="{TemplateBinding HeaderTemplate}"/>
<ItemsPresenter Grid.Row="1" />
</Grid>
</ControlTemplate>
<Style x:Key="TileGroupContainerStyle" TargetType="telerik:TileGroupContainer">
<Setter Property="Template" Value="{StaticResource TileGroupContainerTemplate}" />
<Setter Property="HeaderTemplate" Value="{Binding GroupTemplate, RelativeSource={RelativeSource AncestorType=telerik:RadTileList}}" />
<Setter Property="ItemsPanel" Value="{StaticResource GroupPanelTemplate}" />
<Setter Property="ItemsSource" Value="{Binding Items}" />
<Setter Property="Padding" Value="5,0,0,0"/>
<Setter Property="Header" Value="{Binding Header}" />
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="UseLayoutRounding" Value="True"/>
</Style>
- If you have custom theme, you need to update the panel of RadTileList and it should be:
Example 4: Updating the panel of RadTileList
<ItemsPanelTemplate x:Key="RadTileListItemsPanelTemplate">
<telerik:TileListGroupPanel/>
</ItemsPanelTemplate>
-
HorizontalScrollBarVisibility property of ScrollViewer is set to Auto and there is no need to set it explicitly in the definition of RadTileList
-
There is GroupTemplate by default and it is not necessary to declare it explicitly in order to see the groups
-
Default value of TileListPanel property Padding is changed to new Thickness(0, 0, 0, 0) rather than Thickness(0, 30, 0, 0)