2008-10-06 20 views

cevap

82

kullanabileceğiniz IsSnapToTickEnabled. Bu benim için gayet iyi çalıştı. Detaylar için bakınız MSDN.

belirli pozisyonlarına yapıştırmak isteyen kullanıcılar için
136

basit cevap şu IsSnapToTickEnabled ve TickFrequency özelliklerinden yararlanmak olmasıdır. Yani, keneleri kenetlenmeye çevirin ve kene frekansını 1 olarak ayarlayın.

Ya da, diğer bir deyişle ... kenelerin avantajlarından yararlanın ... ama mutlaka yakaladığınız keneleri göstermeniz gerekmez. için.

Kontrol dışarı xaml aşağıdaki parça: Eğer doğru şekilde kene işaretleri ayarlarsanız

<Slider 
    Orientation="Vertical" 
    Height="200" 
    Minimum="0" 
    Maximum="10" 
    Value="0" 
    IsSnapToTickEnabled="True" 
    TickFrequency="1" 
/> 
+1

Bu cevap kabul edileni olmalı. ÇALIŞIYOR bir cazibe gibi. Teşekkürler – Ashbay

+0

Teşekkürler @Ashbay ... o zaman, cevap olarak kendi cevabımı işaretlemek yerine, cevap için başka birine kredi vermek istedim. – cplotts

42

, ayrıca Ticks özelliğini kullanabilirsiniz:

<Slider Minimum="1" Maximum="500" IsSnapToTickEnabled="True" Ticks="1,100,200,350,500" /> 
8

geçmeli hüner kullanışlıdır ama sadece bir alt kümesini göstermek istiyorsanız, örneğin, sınırlamaları vardır geçerli keneler. İki alternatifle başarı elde ettim: bir tamsayıya bağla veya yeni değeri yuvarla.

public int MyProperty { get; set; } 

private void slider1_ValueChanged(object sender, 
    RoutedPropertyChangedEventArgs<double> e) 
{ 
    (sender as Slider).Value = Math.Round(e.NewValue, 0); 
} 

<Slider 
    Name="slider1" 
    TickPlacement="TopLeft" 
    AutoToolTipPlacement="BottomRight" 
    ValueChanged="slider1_ValueChanged" 
    Value="{Binding MyProperty}" 
    Minimum="0" Maximum="100" SmallChange="1" LargeChange="10" 
    Ticks="0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100"/> 

Ya performans çırpıda hile kıyasla nasıl hiçbir fikrim yok ama herhangi bir sorun * olmadı: Burada kombine örnektir.

* Eğer da metin alanının bir türüne kaydırıcı değerini bağlamak Eğer bunu yaşayacaksınız, arada bir fareyi kullanarak metin alanı ondalık sayılar gösterecektir eğer. Aynı zamanda bir int'ye de bağlanırsanız boş dize, UI'yi kısaca bastıran bir dönüşüm özel durumunun ortaya çıkmasına neden olur. Bu sorunlar çözüm aramam için yeterince ciddi olmadı.

+0

Bu, kullanıcının kaydırıcıdaki diğer değerlere de sahip olmasını sağlıyor mu? Ya da sadece kene değerinin seçilmesine izin verir. Tuhaf bir soru ... umarım ne sorduğumu anlarsın. – JLott

+1

@JLott: Hala "Ticks" değerlerine (0, 10, 20, ...) yapışabilirsiniz, ancak aradaki tüm değerler (1, 2, ...) geçerlidir ve örn. ok tuşları. – mkjeldsen

+0

Ah düzgün. Fark etmedim ki ... Teşekkürler! – JLott

İlgili konular