当前位置:  开发笔记 > 开发工具 > 正文

如何使WPF滑块仅捕捉到离散的整数位置?

如何解决《如何使WPF滑块仅捕捉到离散的整数位置?》经验,为你挑选了4个好方法。

我经常需要一个WPF滑块,其行为类似于旧的System.Windows.Forms.TrackBar.也就是说,我想要一个从X到Y的滑块,但只允许用户在离散的整数位置移动它.

如何在WPF中执行此操作,因为Slider上的Value属性是双倍的?



1> cplotts..:

简单的答案是您可以利用IsSnapToTickEnabledTickFrequency属性.也就是说,将捕捉变为嘀嗒声并将嘀嗒声频率设置为1.

或者,换句话说......利用刻度......但你不一定要显示你正在捕捉的刻度线.

查看下面的xaml:




2> Brian Stewar..:

如果以正确的方式设置刻度线,则可以使用IsSnapToTickEnabled.这对我很有用.有关详细信息,请参阅MSDN



3> Dave..:

对于那些想要捕捉到特定位置的人,您还可以使用该Ticks属性:




4> mkjeldsen..:

快照技巧很方便,但有限制,例如,如果您只想显示有效刻度的子集.我有两个选择成功:要么绑定整数,要么舍入新值.这是一个组合的例子:

public int MyProperty { get; set; }

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


我不知道两者的性能如何与快照技巧相比,但我没有遇到任何麻烦*.

*如果您还将滑块的值绑定到一种文本字段,您将体验到这一点,如果使用鼠标,每隔一段时间,文本字段将显示小数.如果您同时绑定到int,则空字符串将导致抛出转换异常,从而暂时阻塞UI.这些问题对我来说还不够严格,无法寻找解决方案.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有