2013-12-21 110 views
0

我有一個滑塊,其最小值爲-127,最大值爲127.啓動時滑塊位於中間,因此爲0。 是否可以使文本0顯示在勾上,這樣你可以清楚地看到中心位置在哪裏?Wpf滑塊中心的刻度值

<Slider Margin="3" 
      Minimum="-127" 
      Maximum="127" 
      TickPlacement="BottomRight" 
      TickFrequency="2" 
      IsSnapToTickEnabled="True" 
      SmallChange="1" /> 

這是我的滑塊圖片。

slider with ticks, shown 0 value on center ticks

回答

0

這就是我得到我想要的。我使用Slider下的DockPanel來佈局TextBlocks。 一個用於中心0,一個在右側設置最大值,另一個在左側設置最小值。

我找不到任何其他解決方案做我想做的。如果有,它張貼在這裏:)

XAML:

<StackPanel Orientation="Vertical"> 
    <Slider x:Name="SpeedSlider" 
        Margin="3" 
        Foreground="DarkGray" 
        Value="{Binding SliderValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
        Maximum="{Binding Steps, 
                Mode=TwoWay, 
                UpdateSourceTrigger=PropertyChanged}" 
        Minimum="{Binding MinSteps, 
                Mode=TwoWay, 
                UpdateSourceTrigger=PropertyChanged}" 
        SmallChange="2" 
        TickFrequency="4" 
        TickPlacement="BottomRight" 
        ToolTip="{Binding ElementName=SpeedSlider,Path=Value}"> 
    </Slider> 
    <DockPanel> 
     <TextBox DockPanel.Dock="Left" 
         Text="{Binding MinSteps, 
                Mode=TwoWay, 
                UpdateSourceTrigger=PropertyChanged}" 
         Width="100" 
         Background="Transparent" 
         IsReadOnly="True" 
         BorderThickness="0" /> 
     <TextBox DockPanel.Dock="Right" 
         Text="{Binding Steps, 
                Mode=TwoWay, 
                UpdateSourceTrigger=PropertyChanged}" 
         Width="100" 
         HorizontalContentAlignment="Right" 
         Background="Transparent" 
         IsReadOnly="True" 
         BorderThickness="0" /> 
     <TextBlock DockPanel.Dock="Right" 
          Text="0" 
          HorizontalAlignment="Center" /> 
    </DockPanel> 
</StackPanel> 

圖片:

slider with text

0

我不認爲有單獨的滑塊的方式,我想嘗試:

<StackPanel HorizontalAlignment="Center"> 
    <Slider Grid.Row="2" Margin="3" Width="150" 
     Minimum="-127" 
     Maximum="127" 
     TickPlacement="BottomRight" 
     TickFrequency="2" 
     IsSnapToTickEnabled="True" 
     SmallChange="1" /> 
    <TextBlock Text="0" HorizontalAlignment="Center" Margin="0,-5,0,0"/> 
</StackPanel> 

編輯:我只是意識到你是不是新來這個,所以你必須有想到這個微不足道的解決方案...