VLC

2012-01-24 19 views
5
gibi Ses Kaydırıcısı

VLC'nin kaydırıcısı gibi görünen ve davranan Ses Kaydırıcısını arıyorum. Eğer tıkladığınızda : davranışlar arasındaki fark nedir Volume Slider CustomControl
ama ben de aynı davranışı istiyorum ...VLC

: enter image description here


ben kaydırıcıyı stilini nasıl hakkında aşağıdaki yazı bulundu [WPF'de] kaydırıcısını kaydırın ve fareyi kaydırıcı alanına hareket ettirin (fare düğmesi hala basılıyken), kaydırıcıyı kaydırıcıdaki farenin konumuna da kaydırmalıdır.

Nasıl yapılacağını bulamadım .. belki de Slider'dan farklı bir şey kullanmalıyım?

Yardımın için teşekkürler!

+0

Belki de VLC kaydırıcının ve davranışının ne olduğuna bir link verebilir misiniz? – RBarryYoung

+0

@RBarryYoung: [VLC] (http://www.videolan.org/) –

+0

Burada yardım istediklerini net değil. Özel bir programlama sorunuz var mı? –

cevap

7

Kaydırıcıyı doğru değere ayarlayan IsMoveToPointEnabled adı verilen kaydırıcıda bir özellik var, ancak siz tıklattığınızda sürüklediğinizde bu güncelleştirme güncellenmiyor.

Sürüklerken güncellemek için fareyi hareket ettirdiğinizde değeri kendiniz güncellemeniz gerekir, yöntem Track.ValueFromPoint size doğru değeri verir, parça sürgü şablonunun bir parçasıdır.

Örnek

public class DraggableSlider : Slider 
{ 
    public DraggableSlider() 
    { 
     this.IsMoveToPointEnabled = true; 
    } 

    private Track track; 
    public override void OnApplyTemplate() 
    { 
     base.OnApplyTemplate(); 
     track = Template.FindName("PART_Track", this) as Track; 
    } 

    protected override void OnMouseMove(MouseEventArgs e) 
    { 
     base.OnMouseMove(e); 
     if(e.LeftButton == MouseButtonState.Pressed && track != null) 
     { 
      Value = track.ValueFromPoint(e.GetPosition(track)); 
     } 
    } 


    protected override void OnPreviewMouseDown(MouseButtonEventArgs e) 
    { 
     base.OnPreviewMouseDown(e); 
     ((UIElement)e.OriginalSource).CaptureMouse(); 
    } 

    protected override void OnPreviewMouseUp(MouseButtonEventArgs e) 
    { 
     base.OnPreviewMouseUp(e); 
     ((UIElement)e.OriginalSource).ReleaseMouseCapture(); 
    } 
} 

OnPreviewMouseUp/Aşağı geçersiz kılar fare yakalamak, ben VLC denedim ve isterseniz bunları kaldırmak böylece o fareyi yakalamak etmez. Farenin yakalanması, farenin, kaydırma çubuklarının nasıl çalıştığına benzer şekilde kontrolü terk etmesine rağmen değerin değişmesine izin verir.

+0

Mükemmel çalışıyor! Çok teşekkür ederim! – Ron

İlgili konular