2012-07-18 44 views
2

我已經使用了DXCarousel一段時間了,但據我所知,默認行爲總是使中心前端的選定項目具有最大尺寸,而一個或多個項目由於它們用於縮小尺寸的非常小的縮放而不可見。我可以創建WPF DXCarousel,它的大小都可見嗎?

我想要的只是簡單的傳送帶有這種行爲:所選項目在大尺寸的前面(這已經完成),但最遠處的項目的其餘部分應該是可見的。

我想是基於2008年的旋轉木馬的工作,如該傳送帶在吉普的網頁行爲的一個示例:http://www.jeep.com/en/

該網頁會顯示5-6款吉普的旋轉木馬接口,並且所有項目的是可見的。

UPDATE:

我也想在中心最遠的項目。但使用基本的DXCarousel實現,這是不可行的,因爲它取決於將顯示多少項目。

使用DXCarousel文檔中「第4課 - 使用函數和參數」的函數分佈示例有助於我,最遠的對象位於中心,但方向以某種方式旋轉大約90度。

更新2:

下面從德米特里代碼工作不錯,但仍然最遠的產品仍然不是很明顯,而動畫播放(同時選擇)。所以我決定,這不是我喜歡的或我想成爲的行爲。

回答

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]範圍內。

+0

您的代碼相當不錯,但仍然存在一個錯誤:最遠的邊框項目不可點擊。當我點擊時,它什麼都不做。你能檢查一下嗎? – 2012-07-24 03:48:53

+0

@eriawan:此代碼[正常工作](http://screencast.com/t/PJOBJvqn8)給我(我正在使用最新版本 - v12.1.5) – DmitryG 2012-07-24 06:25:12

+0

好吧,我會將我的代碼移植到版本12.1 .5,因爲我目前的代碼仍然在2011年2月11日。之後,我會先測試它。 – 2012-07-24 06:40:38

相關問題