<Style TargetType="{x:Type igw:CarouselPanelItem}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type igw:CarouselPanelItem}"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="*"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <ScrollViewer x:Name="ScrollViewer" HorizontalScrollBarVisibility="{TemplateBinding ItemHorizontalScrollBarVisibility}" VerticalScrollBarVisibility="{TemplateBinding ItemVerticalScrollBarVisibility}"> <Viewbox HorizontalAlignment="Center" x:Name="ViewBox" VerticalAlignment="Bottom"> <Grid x:Name="itemContentHolder"> <Border x:Name="itemContentHolderBackground" Background="#00000000" BorderBrush="Tomato" BorderThickness="1"/> <ContentControl Margin="0,0,0,0" x:Name="itemContent" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}"/> </Grid> </Viewbox> </ScrollViewer> <Canvas IsHitTestVisible=" Visibility="{Binding Path=ReflectionVisibility, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type igw:XamCarouselPanel}}}" Margin="0,2,0,0" Width="{Binding Path=ActualWidth, ElementName=ScrollViewer}" Height="{Binding Path=ActualHeight, ElementName=ScrollViewer}" Grid.Row="1"> <Canvas.OpacityMask> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradientStop Color="Tomato" Offset="0"/> <GradientStop Color="#00000000" Offset="0.8"/> </LinearGradientBrush> </Canvas.OpacityMask> <Canvas.Background> <VisualBrush Opacity="0.3" AlignmentX="Center" AlignmentY="Bottom" Stretch="None" Visual="{Binding ElementName=ScrollViewer}"> <VisualBrush.RelativeTransform> <TransformGroup> <MatrixTransform Matrix="1,0,0,-1,0,0"/> <TranslateTransform Y="1"/> </TransformGroup> </VisualBrush.RelativeTransform> </VisualBrush> </Canvas.Background> </Canvas> </Grid> <ControlTemplate.Triggers> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsFirstItem" Value="True"/> <Condition Property="IsListContinuous" Value="True"/> </MultiTrigger.Conditions> <Setter Property="BorderThickness" TargetName="itemContentHolderBackground" Value="4,4,4,4"/> <Setter Property="BorderBrush" TargetName="itemContentHolderBackground" Value="#FFFFFF00"/> <Setter Property="Margin" TargetName="itemContent" Value="4,4,4,4"/> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsLastItem" Value="True"/> <Condition Property="IsListContinuous" Value="True"/> </MultiTrigger.Conditions> <Setter Property="BorderThickness" TargetName="itemContentHolderBackground" Value="4,4,4,4"/> <Setter Property="BorderBrush" TargetName="itemContentHolderBackground" Value="#FF00FFFF"/> <Setter Property="Margin" TargetName="itemContent" Value="4,4,4,4"/> </MultiTrigger> <Trigger Property="IsSelected" Value="True"> <Setter Property="Background" TargetName="itemContentHolderBackground"> <Setter.Value> <LinearGradientBrush EndPoint="0,1" StartPoint="0,0"> <GradientStop Color="sc#1, 0.303573549, 0.303573549, 0.303573549" Offset="1"/> <GradientStop Color="sc#1, 0.9095203, 0.9095203, 0.9095203" Offset="0"/> </LinearGradientBrush> </Setter.Value> </Setter> <Setter Property="Margin" TargetName="itemContent" Value="4,4,4,4"/> </Trigger> <Trigger Property="AutoScaleItemContentsToFit" Value="True"> <Setter Property="HorizontalScrollBarVisibility" TargetName="ScrollViewer" Value="Hidden"/> <Setter Property="VerticalScrollBarVisibility" TargetName="ScrollViewer" Value="Hidden"/> <Setter Property="Stretch" TargetName="ViewBox" Value="Uniform"/> <Setter Property="StretchDirection" TargetName="ViewBox" Value="Both"/> <Setter Property="Width" TargetName="ViewBox" Value="{Binding Path=ActualWidth, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ScrollContentPresenter}}}"/> <Setter Property="Height" TargetName="ViewBox" Value="{Binding Path=ActualHeight, RelativeSource={RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ScrollContentPresenter}}}"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style>