c# WPF滑块控件使刻度均匀显示

本文关键字:显示 WPF 控件 | 更新日期: 2023-09-27 18:12:17

我在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之间的刻度距离。有没有办法让这个距离是常数?

谢谢

c# WPF滑块控件使刻度均匀显示

我能想到的唯一方法(除了重新制作滑块模板)是在幕后将固定数字转换为指数刻度。只要你把滑块配置成永远不显示数字,你的用户就永远不会知道。

或者像这样设置刻度:

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