好的,所以我知道我可以通过文本框上的一些字符串格式来解决这个问题,但是这让我很烦恼,为什么会发生这种情况。我有一个滑块控件,它将从viewmodel获取其max,min和precision值,具体取决于它加载到哪个页面。
作为一个例子,我对这些值进行了硬编码。
<DockPanel VerticalAlignment="Center"
Margin="40,0,0,0"
Height="100">
<TextBox Text="{Binding ElementName=Slider, Path=Value, UpdateSourceTrigger=PropertyChanged}"
DockPanel.Dock="Top"
TextAlignment="Right"
Width="634"
Margin="0,0,0,20" />
<Slider DockPanel.Dock="Bottom"
Name="Slider"
Width="634"
Padding="0"
Maximum="5000"
Minimum="-5000"
SmallChange="0.01"
LargeChange="0.01"
TickFrequency="0.01"
SnapsToDevicePixels="True"
IsSnapToTickEnabled="True" />
</DockPanel>
我知道我可能不需要这些属性中的一些,但是他们试图解决这个问题。
大部分情况都有效,滑块被限制在两位小数。但我注意到(特别是大范围),我仍然得到随机值,忽略了这一点。例如,当我设置-5000到5000的范围时,我仍然会随机获得80.20000002之类的值。
我知道我可以将一个字符串格式应用到文本框来解决问题,(尽管设置精度的viewmodel有点烦人)只是想知道它为什么会发生。
顺便说一句,用户还需要能够使用键盘设置值,这又完美无缺,但我想知道是否有办法让滑块文本框加入小数点,而后面没有数字。