2

我有一个最小值0和最大值1的滑块。

当我当前滑动它时,该值被设置为 0 到 1 之间的十进制值,例如0.2342343

但是,我希望该值仅为0 或 1(以便我的 ViewModel 属性仅在它为 0 或 1 时才注册更改,而不是在用户将其从 0 拖到 1 时多次注册)。

如何使滑块值仅为 0 或 1?我尝试了 SmallChange、LargeChange 和 SnapsToDevicePixels,但这些都不起作用。

<Slider Name="TheLanguageIndexSlider"
        DockPanel.Dock="Bottom" 
        Minimum="0" 
        Maximum="1" 
        LargeChange="1"
        SmallChange="1"
        SnapsToDevicePixels="True"
        Width="100" 
        Margin="5" 
        Value="{Binding LanguageIndex}"
        HorizontalAlignment="Left"/>
4

2 回答 2

8

设置IsSnapToTickEnabledtotrue并将值 1 分配给TickFrequency属性:

<Slider IsSnapToTickEnabled="True"
        Maximum="1" />
于 2009-06-17T08:40:34.453 回答
2

来自msdn

<Slider Width="100" Value="50" Orientation="Horizontal" HorizontalAlignment="Left" 
    IsSnapToTickEnabled="True" Maximum="3" TickPlacement="BottomRight" 
    AutoToolTipPlacement="BottomRight" AutoToolTipPrecision="2" 
    Ticks="0, 1.1, 2.5, 3"/>

在你的情况下:

<Slider Name="TheLanguageIndexSlider"
    IsSnapToTickEnabled="True"
    Ticks="0, 1"
    DockPanel.Dock="Bottom" 
    Minimum="0" 
    Maximum="1" 
    LargeChange="1"
    SmallChange="1"
    SnapsToDevicePixels="True"
    Width="100" 
    Margin="5" 
    Value="{Binding LanguageIndex}"
    HorizontalAlignment="Left"/>
于 2009-06-17T08:43:12.890 回答