我已经使用了DXCarousel一段时间但据我所知,默认行为总是使所选项目在中心前面具有最大尺寸,并且由于用于减少的缩放非常小而不可见项目或更多项目大小
我想要的只是具有这种行为的简单旋转木马:所选项目位于前面,大尺寸(已经完成)但是最远的项目的其余部分应该是可见的。
我想要的行为示例基于大多数轮播工作,例如Jeep网页中的此轮播:http://www.jeep.com/en/
该页面将显示5-6个带旋转木马界面的吉普车型,所有项目均可见。
更新
我也想要中心最远的物品。但这在某种程度上是不可行的,使用基本的DXCarousel实现,因为它取决于将显示多少项。
使用DXCarousel文档中的“第4课 - 使用函数和参数”的函数分布示例帮助我,最远的对象位于中心,但方向以某种方式旋转了大约90度。
更新2:
以下Dimitry的代码效果不错,但在播放动画时(选择时)仍然不能看到最远的项目。因此,我认为这不是我喜欢或想要的行为。
答案 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]范围。