Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/CS/CarouselDemo.Wpf/Modules/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/CS/CarouselDemo.Wpf/Modules/DXBook.xaml

<local:CarouselDemoModule x:Class="CarouselDemo.DXBook"
    x:Name="ItemCountModule"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dxca="http://schemas.devexpress.com/winfx/2008/xaml/carousel"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:CarouselDemo"
    xmlns:collection="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:system="clr-namespace:System;assembly=mscorlib"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    
    >
    <local:CarouselDemoModule.Resources>
        <ResourceDictionary>
            <dxca:ParameterCollection x:Key="parameterSet">
                <dxca:Parameter Name="ZIndex" DistributionFunction="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type dxca:CarouselPanel}, ResourceId=Linear3PConvexERIntMax}}" />
                <dxca:Parameter Name="Angle3d">
                    <dxca:Parameter.DistributionFunction>
                        <dxca:PieceLinearFunction>
                            <dxca:PieceLinearFunction.Points>
                                <dxca:PointCollection>
                                    <Point X="0" Y="0" />
                                    <Point X="1" Y="180" />
                                </dxca:PointCollection>
                            </dxca:PieceLinearFunction.Points>
                        </dxca:PieceLinearFunction>
                    </dxca:Parameter.DistributionFunction>
                </dxca:Parameter>
            </dxca:ParameterCollection>
        </ResourceDictionary>
    </local:CarouselDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <Grid ClipToBounds="True">
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition Height="80" />
            </Grid.RowDefinitions>
            <Grid HorizontalAlignment="Center" VerticalAlignment="Center" ClipToBounds="False">
                <dxca:CarouselItemsControl x:Name="carouselItemsControl" ItemsSource="{DynamicResource logosArray}">
                    <ItemsControl.ItemContainerStyle>
                        <Style TargetType="{x:Type ContentControl}">
                            <Setter Property="RenderTransformOrigin" Value="0.5, 0.5" />
                            <Setter Property="Opacity" Value="{Binding Path=(dxca:CarouselPanel.Parameters).Opacity, RelativeSource={RelativeSource Self}}" />
                            <Setter Property="Panel.ZIndex" Value="{Binding Path=(dxca:CarouselPanel.Parameters).ZIndex, Converter={local:DoubleToIntConverter},RelativeSource={RelativeSource Self}}" />
                            <Setter Property="RenderTransform">
                                <Setter.Value>
                                    <TransformGroup>
                                        <RotateTransform Angle="{Binding Path=(dxca:CarouselPanel.Parameters).Angle, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type FrameworkElement}}}"
						                />
                                        <TranslateTransform X="{Binding Path=(dxca:CarouselPanel.Parameters).OffsetX, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type FrameworkElement}}}" 
							                Y="{Binding Path=(dxca:CarouselPanel.Parameters).OffsetY, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type FrameworkElement}}}" 
						            />
                                    </TransformGroup>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </ItemsControl.ItemContainerStyle>
                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <dxca:CarouselPanel 
                                RenderOptions.BitmapScalingMode="HighQuality"
                                Style="{DynamicResource carouselStyle}"
                                PathVisible="False"
                                AttractorPointIndex="1"
                                AnimationTime="500"
                                PathPadding="43,0,43,0"
                                PreviewMouseDown="Grid_PreviewMouseDown"
                                ItemSize="240,240"
                                IsAutoSizeItem="True"
                                IsRepeat="False"
                                ParameterSet="{DynamicResource parameterSet}"
                            >
                                <dxca:CarouselPanel.PointPathFunction>
                                    <dxca:PieceLinearFunction>
                                        <dxca:PieceLinearFunction.Points>
                                            <dxca:PointCollection>
                                                <Point X="0" Y="0" />
                                                <Point X="0.01" Y="0" />
                                                <Point X="100" Y="0" />
                                                <Point X="100.01" Y="0" />
                                            </dxca:PointCollection>
                                        </dxca:PieceLinearFunction.Points>
                                    </dxca:PieceLinearFunction>
                                </dxca:CarouselPanel.PointPathFunction>

                                <dxca:CarouselPanel.ItemMovingPath>
                                    <PathGeometry Figures="M0,0 100,0" />
                                </dxca:CarouselPanel.ItemMovingPath>
                            </dxca:CarouselPanel>
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>

                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Viewport3D ClipToBounds="False">
                                <Viewport3D.Camera>
                                    <PerspectiveCamera Position="0, 0, 3" />
                                </Viewport3D.Camera>
                                <Viewport2DVisual3D Visual="{Binding}">
                                    <Viewport2DVisual3D.Transform>
                                        <Transform3DGroup>
                                            <TranslateTransform3D OffsetX="-0.5" />
                                            <RotateTransform3D>
                                                <RotateTransform3D.Rotation>
                                                    <AxisAngleRotation3D Angle="{Binding Path=(dxca:CarouselPanel.Parameters).Angle3d, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContentControl}}}" Axis="0, 1, 0" />
                                                </RotateTransform3D.Rotation>
                                            </RotateTransform3D>
                                        </Transform3DGroup>
                                    </Viewport2DVisual3D.Transform>
                                    <Viewport2DVisual3D.Geometry>
                                        <MeshGeometry3D Positions="-1,1,0 -1,-1,0 1,-1,0 1,1,0"
                                            TextureCoordinates="0,0 0,1 1,1 1,0" 
                                            TriangleIndices="0 1 2 0 2 3"
                                        />
                                    </Viewport2DVisual3D.Geometry>
                                    <Viewport2DVisual3D.Material>
                                        <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" />
                                    </Viewport2DVisual3D.Material>
                                </Viewport2DVisual3D>

                                <Viewport2DVisual3D>
                                    <Viewport2DVisual3D.Transform>
                                        <Transform3DGroup>
                                            <TranslateTransform3D OffsetX="-0.5" />
                                            <RotateTransform3D>
                                                <RotateTransform3D.Rotation>
                                                    <AxisAngleRotation3D Angle="{Binding Path=(dxca:CarouselPanel.Parameters).Angle3d, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ContentControl}}}" Axis="0, 1, 0" />
                                                </RotateTransform3D.Rotation>
                                            </RotateTransform3D>
                                        </Transform3DGroup>
                                    </Viewport2DVisual3D.Transform>
                                    <Viewport2DVisual3D.Geometry>
                                        <MeshGeometry3D Positions="1,1,0 1,-1,0 -1,-1,0 -1,1,0"
                                            TextureCoordinates="0,0 0,1 1,1 1,0" 
                                            TriangleIndices="3 0 1 3 1 2"
                                        />
                                    </Viewport2DVisual3D.Geometry>
                                    <Viewport2DVisual3D.Material>
                                        <DiffuseMaterial Viewport2DVisual3D.IsVisualHostMaterial="True" />
                                    </Viewport2DVisual3D.Material>
                                    <Viewport2DVisual3D.Visual>
                                        <Image Source="../Images/logo-back.png" Width="256" Height="256" />
                                    </Viewport2DVisual3D.Visual>
                                </Viewport2DVisual3D>

                                <ModelVisual3D>
                                    <ModelVisual3D.Content>
                                        <Model3DGroup>
                                            <AmbientLight Color="White" />
                                            <DirectionalLight Color="White" Direction="0,1,-1" />
                                            <DirectionalLight Color="White" Direction="0,-1,-1" />
                                        </Model3DGroup>
                                    </ModelVisual3D.Content>
                                </ModelVisual3D>
                            </Viewport3D>
                        </DataTemplate>

                    </ItemsControl.ItemTemplate>
                </dxca:CarouselItemsControl>
            </Grid>
            <dxca:CarouselNavigator Width="300"
                Height="24"                
                Grid.Row="1"
                Carousel="{Binding ElementName=carouselItemsControl, Path=Carousel}"
            />
        </Grid>
    </dxdb:DemoModuleControl>
</local:CarouselDemoModule>