Я работаю над пользовательским слайдером диапазона двумя большими пальцами. Я создал собственный класс Track и обновил шаблон элемента управления моего ползунка для поддержки двух больших пальцев. Дело в том, что я не понял, почему мои новые пальцы не отображаются.
Мой класс диапазона выглядит примерно так:
public class RangeTrack : Track
{
public RangeTrack() : base() { }
public Thumb LeftThumb { get; set; }
public ThumbRightThumb { get; set; }
}
И мое редактирование в существующем шаблоне управления ползунком выглядит примерно так:
...
<local:RangeTrack x:Name="PART_Track" Grid.Row="1">
<local:RangeTrack.LeftThumb>
<Thumb Name="LeftThumb" Style="{StaticResource
HorizontalSliderThumbStyle}" />
</local:RangeTrack.LeftThumb>
<local:RangeTrack.RightThumb>
<Thumb Name="RightThumb" Style="{StaticResource
HorizontalSliderThumbStyle}" />
</local:RangeTrack.RightThumb>
<local:RangeTrack.Thumb>
<Thumb Name="Thumb" Style="{StaticResource
HorizontalSliderThumbStyle}" />
</local:RangeTrack.Thumb>
</local:RangeTrack>
...
Он по-прежнему рисует оригинальный палец. Но не два новых, которые я добавил. Я не уверен, есть ли что-то особенное, что я должен сделать в RangeTrack OnRender
.
Edit:
Я открыл PresentationFramework.dll в дизассемблере IL и заметил, что в System.Windows.Controls.Primitives.Track есть свойство с именем ThumbCenterOffset, не уверенное, отвечает ли он за размещение большого пальца в правильном месте.