WPF:为什么我的滑块不显示标签上的最小值
WPF: why my slider not show the minimum value on my label
<Grid Margin="405,192,170,450" >
<Slider Name="speedSlider" Value="1" Style="{StaticResource SliderStyle}" HorizontalAlignment="Left" VerticalAlignment="Bottom"
Minimum="0" Maximum=" 50" TickFrequency="5" TickPlacement="None" Width="160"/>
<Label Name="lblSliderSpeed" Content="{Binding ElementName=speedSlider, Path=Value, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="1" VerticalAlignment="Bottom" HorizontalAlignment="Right" ContentStringFormat="{}{0:#}"/>
</Grid>
我的 label
显示当前 slide
value
而 value
改变但在 minimum value
(0) 我的 label
不显示任何 value
我也在后面尝试了这段代码,尽管执行了 if,这仍然没有帮助:
private void speedSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
double value = speedSlider.Value;
if (value == 0)
{
lblSliderSpeed.Content = value;
}
}
问题出在你的 ContentStringFormat
将 ContentStringFormat
更改为 Like this
<Label Name="lblSliderSpeed" Content="{Binding ElementName=speedSlider, Path=Value, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="1" VerticalAlignment="Bottom" HorizontalAlignment="Right" ContentStringFormat="{}{0:00}"/>
后面的页面不需要代码。
因为,“#”自定义格式说明符用作数字占位符。如果正在格式化的值在格式字符串中出现“#”符号的位置有一个数字,那么该数字将被复制到结果字符串中。否则,结果字符串中的该位置不会存储任何内容。
您的字符串格式不支持零,请改用它:
ContentStringFormat="{}{0:#; #;0}"
有关 Int 的字符串格式的详细信息,请参阅 this link。
<Grid Margin="405,192,170,450" >
<Slider Name="speedSlider" Value="1" Style="{StaticResource SliderStyle}" HorizontalAlignment="Left" VerticalAlignment="Bottom"
Minimum="0" Maximum=" 50" TickFrequency="5" TickPlacement="None" Width="160"/>
<Label Name="lblSliderSpeed" Content="{Binding ElementName=speedSlider, Path=Value, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="1" VerticalAlignment="Bottom" HorizontalAlignment="Right" ContentStringFormat="{}{0:#}"/>
</Grid>
我的 label
显示当前 slide
value
而 value
改变但在 minimum value
(0) 我的 label
不显示任何 value
我也在后面尝试了这段代码,尽管执行了 if,这仍然没有帮助:
private void speedSlider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
double value = speedSlider.Value;
if (value == 0)
{
lblSliderSpeed.Content = value;
}
}
问题出在你的 ContentStringFormat
将 ContentStringFormat
更改为 Like this
<Label Name="lblSliderSpeed" Content="{Binding ElementName=speedSlider, Path=Value, UpdateSourceTrigger=PropertyChanged}"
Grid.Column="1" VerticalAlignment="Bottom" HorizontalAlignment="Right" ContentStringFormat="{}{0:00}"/>
后面的页面不需要代码。
因为,“#”自定义格式说明符用作数字占位符。如果正在格式化的值在格式字符串中出现“#”符号的位置有一个数字,那么该数字将被复制到结果字符串中。否则,结果字符串中的该位置不会存储任何内容。
您的字符串格式不支持零,请改用它:
ContentStringFormat="{}{0:#; #;0}"
有关 Int 的字符串格式的详细信息,请参阅 this link。