バージョン

CarouselListBoxItem テンプレートを編集

XAML の場合:

<Style TargetType="{x:Type igw:CarouselListBoxItem}">
        <Style.BasedOn>
          <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="#000FF000" CornerRadius="4,4,4,4"
                                  BorderBrush="Tomato" BorderThickness="10"/>
                          <ContentControl Margin="0,0,0,0" x:Name="itemContent" Content="{TemplateBinding Content}"
                                          ContentTemplate="{TemplateBinding ContentTemplate}"/>
                        </Grid>
                      </Viewbox>
                    </ScrollViewer>
                    <Canvas IsHitTestVisible=" Visibility={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="#FF000000" 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="#00FFFFFF"/>
                      <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="#00FFFFFF"/>
                      <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={x:Type ScrollContentPresenter}/>
                      <Setter Property="Height" TargetName="ViewBox" Value={x:Type ScrollContentPresenter}/>
                    </Trigger>
                  </ControlTemplate.Triggers>
                </ControlTemplate>
              </Setter.Value>
            </Setter>
          </Style>
        </Style.BasedOn>
      </Style>