Witam.
Mam pewną zagwozdkę.
Otóż mam w aplikacji WPF na frameworku 4.5.2 kontrolkę typu ItemsControl z zadeklarowanym WrapPanel'em w ItemsPanelTemplate. Zawartość ItemTemplate jest dosyć duża gdyż umieściłem tam Border'a a w nim 6 kontrolek z bindingowaną zawartością, sterowanych triggerami.
Od jakiegoś czasu widzę pewien niepokojący efekt. Mianowicie widzę że najpierw rysują mi się same Border'y a dopiero potem ich zawartości. Efekt taki nie pojawia się zawsze tylko co jakiś czas. Komputer mam mocny (I5 z 12 MB RAM'u oraz dodatkową kartą graficzną oraz DirectX 11) a jednak taki efekt co jakiś czas mi się pojawia. Do tej pory tego nie było. Czy możecie mi wskazać co może być przyczyną takiego zachowania kontrolki?
Zamieszczam jej xaml'a.
<ItemsControl Grid.Row="1" Grid.Column="1" x:Name="ProductsListView" Padding="1" ItemsSource="{Binding ElementName=thisControl, Path=DisplayedElements}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.CanContentScroll="False"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border CornerRadius="8,8,0,0" BorderBrush="Gray" BorderThickness="{Binding RelativeSource={RelativeSource AncestorType={x:Type prodSet:ProductsList}}, Path=BorderItemThickness}"
Margin="2" x:Name="border"
Width="{StaticResource ProductListProductBrickWidth}" Height="{StaticResource ProductListProductBrickHeight}"
Background="{Binding Path=Color, Converter={StaticResource ProductColorToBrushConverter}}" RenderTransformOrigin="0.5,0.5"
UseLayoutRounding="True" PreviewMouseLeftButtonDown="ProductsListView_MouseLeftButtonDown" PreviewMouseLeftButtonUp="ProductsList_MouseLeftUp"
Stylus.IsPressAndHoldEnabled="False"
Tag="{Binding}" MouseLeave="border_MouseLeave">
<Border.RenderTransform>
<ScaleTransform ScaleX="1" ScaleY="1"/>
</Border.RenderTransform>
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding Index, Mode=OneWay, IsAsync=True}" HorizontalAlignment="Center" TextAlignment="Center" Margin="5,5,5,0"
Visibility="{Binding ElementName=thisControl, Path=IsDisplayIndex, Converter={StaticResource BoolToVisibilityConverter}, Mode=OneWay}"/>
<koncept:TextBlockAutoSize Grid.Row="1" Text="{Binding Path=Description, Mode=OneWay, IsAsync=True}" HorizontalAlignment="Center" Margin="7,2"
TextWrapping="WrapWithOverflow" TextAlignment="Center" x:Name="txt" VerticalAlignment="Center" />
<Image Grid.Row="2" Source="{Binding Path=ProductImage, Mode=OneWay, IsAsync=True}" Margin="10,1"
Visibility="{Binding Path=ProductImage, Converter={StaticResource ImgToVisibilityConverter}, Mode=OneWay}"
MaxWidth="{StaticResource ProductListImageWidth}" MaxHeight="{StaticResource ProductListImageHeight}" Stretch="Uniform" />
<TextBlock Grid.Row="3" Text="{Binding Path=StockActualDescription, Mode=OneWay}"
HorizontalAlignment="Center" VerticalAlignment="Center" Margin="5,0"
Visibility="{Binding Path=StockActualDescription, Converter={StaticResource stringToVisibilityConverter},FallbackValue=Collapsed, Mode=OneWay}"/>
<koncept:TextBlockAutoSize Grid.Row="4" Text="{Binding Path=PriceDescription, Mode=OneWay}"
HorizontalAlignment="Center" Margin="5,0,5,5"
Visibility="{Binding Path=PriceDescription, Converter={StaticResource stringToVisibilityConverter},FallbackValue=Collapsed, Mode=OneWay}"/>
<TextBlock Grid.RowSpan="5" HorizontalAlignment="Right" VerticalAlignment="Bottom" Text="î" FontFamily="Wingdings" FontSize="16" Visibility="Collapsed"
x:Name="textArrow" Margin="0,0,4,0"/>
</Grid>
</Border>
<DataTemplate.Triggers>
<EventTrigger RoutedEvent="Mouse.MouseDown">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard AutoReverse="True" Storyboard.TargetName="border">
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleX"
To="1.02" Duration="0:0:0.05" />
<DoubleAnimation Storyboard.TargetProperty="RenderTransform.ScaleY"
To="1.02" Duration="0:0:0.05" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<DataTrigger Binding="{Binding IsUnderMinWarehouseState}" Value="true">
<Setter TargetName="border" Property="BorderThickness" Value="2"/>
<Setter TargetName="border" Property="BorderBrush" Value="Red"/>
</DataTrigger>
<!--<DataTrigger Binding="{Binding ProductImage}" Value="{x:Null}">
<Setter TargetName="txt" Property="Grid.RowSpan" Value="2"/>
</DataTrigger>-->
<DataTrigger Binding="{Binding IsMenuDescriptions}" Value="true">
<Setter TargetName="textArrow" Property="Visibility" Value="Visible"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>