C#WPF Slider控件使得刻度均匀显示

时间:2011-10-25 19:53:08

标签: c# wpf

我在WPF中有一个滑块控件的代码如下:

occuranceTimeSlider.TickPlacement = System.Windows.Controls.Primitives.TickPlacement.BottomRight;
                occuranceTimeSlider.IsSnapToTickEnabled = true;
                occuranceTimeSlider.Ticks = new DoubleCollection()
                {
                    30, 45, 60, 90, 120, 180, 240, 300, 600, 900, 1200, 1800, 3600, 5400, 7200, 9000, 10800, 14400, 18000 
                };
                occuranceTimeSlider.Minimum = occuranceTimeSlider.Ticks.Min();
                occuranceTimeSlider.Maximum = occuranceTimeSlider.Ticks.Max();
                occuranceTimeSlider.IsSelectionRangeEnabled = false ;

在运行时,滑块显示并正常 。根据两个刻度的大小,在每个刻度之间放置一个可变距离的刻度线。例如,14400和18000之间的刻度距离远大于30到45之间的刻度距离。有没有办法使这个距离保持不变?

由于

2 个答案:

答案 0 :(得分:2)

我能想到的唯一方法(没有重新模板化滑块)将是从固定数字转换到幕后的指数级别。只要您将滑块配置为永远不会显示数字,您的用户就永远不会知道。

答案 1 :(得分:0)

或者只设置这样的刻度:

Ticks =“30,45,60,90,120,180,240,300,600,900,1200,1800,3600,5400,7200,9000,10800,14400,18000”