2

私はしばらくDXCarouselを使用してきましたが、私の知る限り、デフォルトの動作は常に選択されたアイテムを最大サイズの中央前面に作成し、サイズを縮小するために使用する非常に小さなスケーリングのために、アイテム以上は表示されません.

私が欲しいのは、この動作を持つ単純なカルーセルです: 選択されたアイテムは大きなサイズで前面にあります (これは既に行われています) が、最も後ろのアイテムの残りの部分が見えるはずです.

私が望む動作のサンプルは、ジープの Web ページにあるこのカルーセルなど、ほとんどのカルーセル作業に基づいています: http://www.jeep.com/en/

このページには、カルーセル インターフェイスを備えた 5 ~ 6 モデルの Jeep が表示され、すべてのアイテムが表示されます。

アップデート:

また、中心にある最も遠いアイテムが必要です。しかし、表示されるアイテムの数に依存するため、これは基本的な DXCarousel 実装を使用して何とか実行できません。

DXCarousel ドキュメンテーションの「レッスン 4 - 関数とパラメーターの使用」の関数分布サンプルを使用すると、最も遠いオブジェクトが中心にありますが、方向が何とか 90 度回転しています。

更新 2:

以下の Dimitry のコードはうまく動作しますが、アニメーションの再生中 (選択中) には、最も遠いアイテムはまだ見えません。したがって、それは私が好きな、またはなりたい行動ではないと判断しました。

4

1 に答える 1

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] の範囲に調整しています。

于 2012-07-23T05:26:30.560 に答える