我可以创建包含所有项目大小的WPF DXCarousel吗?

时间:2012-07-18 02:58:03

标签: wpf devexpress carousel

我已经使用了DXCarousel一段时间但据我所知,默认行为总是使所选项目在中心前面具有最大尺寸,并且由于用于减少的缩放非常小而不可见项目或更多项目大小

我想要的只是具有这种行为的简单旋转木马:所选项目位于前面,大尺寸(已经完成)但是最远的项目的其余部分应该是可见的。

我想要的行为示例基于大多数轮播工作,例如Jeep网页中的此轮播:http://www.jeep.com/en/

该页面将显示5-6个带旋转木马界面的吉普车型,所有项目均可见。

更新

我也想要中心最远的物品。但这在某种程度上是不可行的,使用基本的DXCarousel实现,因为它取决于将显示多少项。

使用DXCarousel文档中的“第4课 - 使用函数和参数”的函数分布示例帮助我,最远的对象位于中心,但方向以某种方式旋转了大约90度。

更新2:

以下Dimitry的代码效果不错,但在播放动画时(选择时)仍然不能看到最远的项目。因此,我认为这不是我喜欢或想要的行为。

1 个答案:

答案 0 :(得分:2)

我相信您可以使用此代码段中演示的CarouselPanel.OffsetDistributionFunction来查看最远的项目:

<dx:CarouselPanel Name="carouselPanel1" AttractorPointIndex="2" PathSizingMode="Stretch"
                  IsRepeat="True"
                  Width ="400" Height="150" ItemSize="100,100"
                  ItemMovingPath="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type dx:CarouselPanel}, ResourceId=Ellipse}}"
                  >
    <dx:CarouselPanel.Resources>
        <Style TargetType="{x:Type Border}" 
               BasedOn="{StaticResource {ComponentResourceKey TypeInTargetAssembly={x:Type dx:CarouselPanel}, ResourceId=advancedCarouselItemStyle}}" >
            <Setter Property="Opacity" Value="1" /><!-- supress opacity animation -->
        </Style>
    </dx:CarouselPanel.Resources>
    <dx:CarouselPanel.OffsetDistributionFunction>
        <dx:LinearFunction K="0.8" B="0.1" />
    </dx:CarouselPanel.OffsetDistributionFunction>
    <Border Background="Red" />
    <Border Background="Green" />
    <Border Background="Blue" />
    <Border Background="Yellow" />
    <Border Background="Pink" />
</dx:CarouselPanel>

我正在使用f(x)=0.8*x+0.1线性函数来调整项目分布区间,从默认范围([0..1])到[0.1 ... 0.9]范围。