XAML Slider要素を許可された値のみにスナップさせるにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1005765

  •  05-07-2019
  •  | 
  •  

質問

最小値 0 および最大値 1 のスライダーがあります。

現在スライドすると、値は0〜1の10進数値に設定されます。 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"/>
役に立ちましたか?

解決

IsSnapToTickEnabled true に設定し、1の値を TickFrequency プロパティに割り当てます。

<Slider IsSnapToTickEnabled="True"
        Maximum="1" />

他のヒント

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"/>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top