'实时'滑块价值成标签

时间:2015-01-16 11:44:16

标签: c# slider windows-applications

我做了一个应用程序,允许我控制一个Microsoft NXT 2.0 Mindstorms机器人,我最近添加了一个滑块,我想用它来设置当前的引擎速度而不是固定值,所以我需要帮助

这里我有我想要使用的标签和滑块的XAML:

<Slider x:Name="Speed" HorizontalAlignment="Left" Margin="40,58,0,0" VerticalAlignment="Top" Width="30" Orientation="Vertical" Height="187" Maximum="90" Minimum="-90" SmallChange="1" LargeChange="10" IsSnapToTickEnabled="True" TickFrequency="5" TickPlacement="BottomRight" AutoToolTipPlacement="BottomRight" MouseUp="Speed_MouseUp" BorderBrush="#00000000" Background="#00000000" Foreground="#FF858585">
<Label x:Name="Current_Speed" Content="Currently: " HorizontalAlignment="Right" Margin="0,0,478,257" Width="60" Height="29" VerticalAlignment="Bottom" Foreground="Black" />

我希望Current_SpeedCurrently: {SliderValue}我希望它能够像我使用工具提示选项一样向上或向下移动滑块时立即写出滑块的当前值。

有什么想法吗?

(请记住,我不是很熟练,所以非常感谢详细的解决方案)

提前谢谢你:)

1 个答案:

答案 0 :(得分:1)

相对容易。 &#34;技巧&#34;是你需要使用两个不同的Label对象,你可以使用StackPanel容器聚合在一起。

对于第二个Label对象,只需设置Label的{​​{1}}属性,如下所示:

Content

整个事情看起来像这样:

Content="{Binding ElementName=Speed, Path=Value}"

注意:我稍微重新排列了布局,以确保UI元素正确可见,并重新格式化XAML本身以帮助提高可读性。

我还建议您使用其他一些机制来控制布局,而不是设置<Slider x:Name="Speed" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="40,58,0,0" Width="30" Height="187" Orientation="Vertical" Maximum="90" Minimum="-90" SmallChange="1" LargeChange="10" IsSnapToTickEnabled="True" TickFrequency="5" TickPlacement="BottomRight" AutoToolTipPlacement="BottomRight" MouseUp="Speed_MouseUp" BorderBrush="#00000000" Background="#00000000" Foreground="#FF858585" /> <StackPanel Orientation="Horizontal" Margin="0,0,0,257" Height="29"> <Label x:Name="Current_Speed_Text" Content="Currently: " HorizontalAlignment="Right" VerticalAlignment="Bottom" Foreground="Black" /> <Label x:Name="Current_Speed" Content="{Binding ElementName=Speed, Path=Value}" HorizontalAlignment="Right" VerticalAlignment="Bottom" Foreground="Black" /> </StackPanel> 值。 Margin属性非常适合确保元素之间有足够的空间,但它不能很好地适应元素的灵活布局,因为它通常需要手动修改边距值随着其他元素特征的变化(例如字体大小,文本中的字符数等)。

同样,您应谨慎使用MarginWidth。他们有类似的问题。

换句话说,如果您将上述建议应用于您的XAML并且它似乎无法正常工作,那么因为Height目前正以这样的方式进行布局:额外&#34;速度值&#34;文字无法看到。