This question is locked. New answers and comments are not allowed.
I've been working with the TIleView control and have no more than bound the control to a data source and have run into not one but two un-handled exceptions being caused by the control.
The first of which is when I switch Item Sources from a populated one to an empty one. I receive the following error:
Value cannot be infinite or NaN.
Parameter name: System.Windows.CustomDependencyProperty
The second error I receive when I try and maximize an item inside of a Tile Control when there is only one item in the data source.
UIElement.Arrange(finalRect) cannot be called with Infinite or NaN values in finalRect.
Both Errors can be stopped by adding MaxHeight property to the TileView control, but that causes the control to be malformed and of course not take up all available space.
I have created a test project that shows both of these behaviors in action, if needed. Since I can't attach the project zip I have included some of the code below.
XAML:
Code Behind:
I am currently working with the latest version of the trial controls (downloaded less than a week ago) have only been working with the TileView control (the specific control we are interested in) today. I find it very concerning that it's so easy to cause two un-handled exceptions with so little time. I'm hoping it is just something i'm missing, but several searches have not yet revealed anything.
The first of which is when I switch Item Sources from a populated one to an empty one. I receive the following error:
Value cannot be infinite or NaN.
Parameter name: System.Windows.CustomDependencyProperty
The second error I receive when I try and maximize an item inside of a Tile Control when there is only one item in the data source.
UIElement.Arrange(finalRect) cannot be called with Infinite or NaN values in finalRect.
I have created a test project that shows both of these behaviors in action, if needed. Since I can't attach the project zip I have included some of the code below.
XAML:
<UserControl x:Class="SilverlightApplication2.SilverlightControl1" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:tileview="clr-namespace:Telerik.Windows.Controls.TileView;assembly=Telerik.Windows.Controls.Navigation" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <UserControl.Resources> <DataTemplate x:Key="CountryHeaderTemplate"> <TextBlock Text="{Binding Name}" /> </DataTemplate> <tileview:TileToFluideStateConverter x:Key="tileConverter" /> <Style TargetType="TextBlock" x:Key="TextStyle"> <Setter Property="FontSize" Value="12" /> <Setter Property="FontFamily" Value="Verdana" /> </Style> <Style TargetType="TextBlock" x:Key="TitleTextStyle" BasedOn="{StaticResource TextStyle}"> <Setter Property="FontWeight" Value="Bold" /> </Style> <DataTemplate x:Key="CountryTemplate"> <telerik:RadFluidContentControl ContentChangeMode="Manual" TransitionDuration="0:0:.5" State="{Binding State, Converter={StaticResource tileConverter}}"> <telerik:RadFluidContentControl.SmallContent> <Image Source="{Binding SmallFlag}" Stretch="None" /> </telerik:RadFluidContentControl.SmallContent> <telerik:RadFluidContentControl.Content> <Image Source="{Binding SmallFlag}" Stretch="None" /> </telerik:RadFluidContentControl.Content> <telerik:RadFluidContentControl.LargeContent> <Grid MaxHeight="400"> <Grid.RowDefinitions> <RowDefinition Height="*" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Image Source="../Images/TileView/Flags/map.png" Grid.ColumnSpan="2" Grid.RowSpan="2" /> <Image Source="{Binding LargeFlag}" Grid.Column="1" Margin="10" /> <telerik:RadWrapPanel Margin="20"> <StackPanel Orientation="Horizontal" Margin="10"> <TextBlock Text="Political System:" Style="{StaticResource TitleTextStyle}" /> <TextBlock Text="{Binding PoliticalSystem}" Style="{StaticResource TextStyle}" /> </StackPanel> <StackPanel Orientation="Horizontal" Margin="10"> <TextBlock Text="Capital City:" Style="{StaticResource TitleTextStyle}" /> <TextBlock Text="{Binding CapitalCity}" Style="{StaticResource TextStyle}" /> </StackPanel> <StackPanel Orientation="Horizontal" Margin="10"> <TextBlock Text="Total Area:" Style="{StaticResource TitleTextStyle}" /> <TextBlock Text="{Binding TotalArea}" Style="{StaticResource TextStyle}" /> </StackPanel> <StackPanel Orientation="Horizontal" Margin="10"> <TextBlock Text="Population:" Style="{StaticResource TitleTextStyle}" /> <TextBlock Text="{Binding Population}" Style="{StaticResource TextStyle}" /> </StackPanel> <StackPanel Orientation="Horizontal" Margin="10"> <TextBlock Text="Currency:" Style="{StaticResource TitleTextStyle}" /> <TextBlock Text="{Binding Currency}" Style="{StaticResource TextStyle}" /> </StackPanel> <StackPanel Orientation="Horizontal" Margin="10"> <TextBlock Text="Official Language:" Style="{StaticResource TitleTextStyle}" /> <TextBlock Text="{Binding OfficialLanguage}" Style="{StaticResource TextStyle}" /> </StackPanel> </telerik:RadWrapPanel> <TextBlock FontSize="11" TextWrapping="Wrap" Text="{Binding Description}" Grid.Row="1" Grid.ColumnSpan="2" Margin="20" /> </Grid> </telerik:RadFluidContentControl.LargeContent> </telerik:RadFluidContentControl> </DataTemplate> <Style TargetType="telerik:RadTileView"> <Setter Property="PreservePositionWhenMaximized" Value="True" /> <Setter Property="telerik:TileViewPanel.IsVirtualized" Value="True" /> <Setter Property="IsAutoScrollingEnabled" Value="True" /> <Setter Property="TileStateChangeTrigger" Value="SingleClick" /> <Setter Property="MinimizedColumnWidth" Value="180" /> <Setter Property="MinimizedRowHeight" Value="155" /> <Setter Property="RowHeight" Value="155" /> <Setter Property="ColumnWidth" Value="180" /> <Setter Property="ColumnsCount" Value="5" /> <Setter Property="ContentTemplate" Value="{StaticResource CountryTemplate}" /> <Setter Property="ItemTemplate" Value="{StaticResource CountryHeaderTemplate}" /> </Style> </UserControl.Resources> <Grid x:Name="LayoutRoot" Background="White"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="10" /> <RowDefinition Height="Auto" /> <RowDefinition Height="10" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <TextBlock Text="Modify" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row="0" Grid.Column="0" /> <Grid Grid.Row="2" Grid.Column="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <Grid.ColumnDefinitions> <ColumnDefinition Width="75" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="150" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="150" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="4" /> <RowDefinition Height="Auto" /> <RowDefinition Height="40" /> </Grid.RowDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" Text="Date:" FontWeight="Bold" HorizontalAlignment="Right" VerticalAlignment="Center" /> <Button x:Name="ResetControl" Grid.Row="0" Grid.Column="4" Content="Cause Error" Click="ResetControl_Click" /> <TextBlock Grid.Row="2" Grid.Column="0" Text="Notes:" FontWeight="Bold" HorizontalAlignment="Right" VerticalAlignment="Center" /> <TextBox Grid.Row="2" Grid.RowSpan="2" Grid.Column="2" Grid.ColumnSpan="10" Height="55" x:Name="ScheduleNotes" Text="{Binding notes_txt}" AcceptsReturn="True" VerticalScrollBarVisibility="Auto" VerticalAlignment="Stretch" TextWrapping="Wrap" HorizontalAlignment="Stretch" /> </Grid> <Border Grid.Row="4" Grid.Column="0" CornerRadius="5" BorderBrush="Black" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> <ScrollViewer VerticalScrollBarVisibility="Auto" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Background="Transparent"> <StackPanel Orientation="Vertical" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> <TextBlock x:Name="ContentBox" Text="Content" HorizontalAlignment="Stretch" VerticalAlignment="Top" Height="25" /> <telerik:RadTileView Name="tileView1" ItemsSource="{Binding ProductionRunParts}" TileStateChanged="tileView1_TileStateChanged" TileStateChangeTrigger="{Binding ElementName=StateChangeOption, Path=SelectedItem}" MaximizeMode="{Binding ElementName=MaximizeModeOption, Path=SelectedItem}" IsItemDraggingEnabled="{Binding ElementName=IsItemDraggingEnabledOption, Path=IsChecked}" PreservePositionWhenMaximized="{Binding ElementName=PreservePositionWhenMaximizedOption, Path=IsChecked}"> </telerik:RadTileView> </StackPanel> </ScrollViewer> </Border> </Grid></UserControl>Code Behind:
using System;using System.Collections.Generic;using System.Windows;using System.Windows.Controls;using Telerik.Windows;namespace SilverlightApplication2{ public partial class SilverlightControl1 : UserControl { public SilverlightControl1() { InitializeComponent(); //tileView1.MaxHeight = 400; //This Prevents BOTH Errors, but causes control to be Malformed. tileView1.ItemsSource = new List<String> { "Test" }; //This Errors on Maximize. //tileView1.ItemsSource = new List<String> { "Test1", "Test2", "Test3", "Test4", "Test5" }; //This Works Fine. } private void tileView1_TileStateChanged(object sender, RadRoutedEventArgs e) { } private void ResetControl_Click(object sender, RoutedEventArgs e) { tileView1.ItemsSource = new List<String>(); //This Errors Here, but if you set the Inital Datasource to Empty or null it's fine? } }}I am currently working with the latest version of the trial controls (downloaded less than a week ago) have only been working with the TileView control (the specific control we are interested in) today. I find it very concerning that it's so easy to cause two un-handled exceptions with so little time. I'm hoping it is just something i'm missing, but several searches have not yet revealed anything.