2011-09-14 2 views
1

どのように私はWpf 4で作ることができます - "春" - スライダーコントロール? Thumbを解放した後で常にThumbが設定点0に戻ると、 、最初に「春」のようにジャンプします。 乾杯 ディウ"春" wpfスライダーコントロール

答えて

0
あなたは

 <Slider x:Name="slider"> 
     <Slider.Triggers> 
      <EventTrigger SourceName="slider" RoutedEvent="Thumb.DragCompleted">  
       <BeginStoryboard> 
        <Storyboard> 
         <DoubleAnimation Storyboard.TargetName="slider" Storyboard.TargetProperty="Value" From="{Binding Value, ElementName=slider}" To="0" Duration="0:0:1"/> 
        </Storyboard> 
       </BeginStoryboard>   
      </EventTrigger> 
     </Slider.Triggers>    
    </Slider> 

しかし(ただ第二の期間でバック親指のリリースに湧きさ)XAMLでこれを行うためにトリガーを使用することができます

、これはキャプチャしません。スライダをクリックしてステップまたはValueプロパティの直接設定を行います。これを完全にキャプチャするには、3つのイベント(Thumb.DragCompleted、Thumb.DragStarted、Slider.ValueChanged)をすべて聴き、サムがドラッグされている間にアニメーションを適用しないようにする必要があります。また、一定の時間ではなく、一定の速度を持つため、アニメーションの時間をカスタマイズすることもできます。

XAMLで完全に行うことは可能ですが、コードビハインドを使用して「弾力のある」スライダを完全に機能的に実装する方が簡単です。

+0

(Xaml)その作業ですが、初めてスライダーが遅れました。 – Diu

+0

Hey Diuは、明示的なバインディングが解決するFromプロパティのdefaultt評価に問題があるようです(これを反映する更新されたソリューション)。 DoubleAnimationのデフォルトの持続時間は1秒ですが、アニメーションなしでスライダーを直ちにゼロにリセットしたい場合は、Duration = "0:0:0"を設定できます。 –

+0

ありがとう、素晴らしいソース! – Diu