如何获得滑块的自定义轨道以绘制额外的拇指?

时间:2012-02-10 15:40:54

标签: wpf slider rangeslider

我正在研究一个带有两个拇指的自定义范围滑块。我已经创建了一个自定义Track类,并且我已经更新了我的滑块控件模板以支持两个拇指。问题是,我还没弄清楚为什么我的新拇指没有出现。

我的自定义范围类看起来像这样:

public class RangeTrack : Track
{
    public RangeTrack() : base() { }

    public Thumb LeftThumb { get; set; }
    public ThumbRightThumb { get; set; }
}

我对existing slider control template的编辑看起来像这样:

    ...
    <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>
    ...

它仍然绘制了原始的Thumb。但是,不是我添加的两个新的。我不确定在RangeTrack的OnRender中是否应该做一些特殊的事情。

编辑:

我在IL反汇编程序中打开了PresentationFramework.dll,我注意到System.Windows.Controls.Primitives.Track中有一个名为ThumbCenterOffset的属性,不确定他是否负责将Thumb放在正确的位置。

0 个答案:

没有答案