我的XAML:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Slider Name="sldLength" Margin="0 0 0 0" Grid.Column="0"
Minimum="5" Maximum="30" SmallChange="1" LargeChange="1"
Value="10" ValueChanged="sldLength_ValueChanged"/>
<TextBlock Name="tblLength" Margin="0 10 5 0" Text="10" Grid.Column="1"
FontSize="{StaticResource PhoneFontSizeMediumLarge}"/>
</Grid>
我的代码求得:
private void sldLength_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
tblLength.Text = e.NewValue.ToString();
}
2个问题:
有任何帮助......
- 编辑 -
用Chepene建议解决了问题1 解决问题2与小厚脸皮事件处理程序:
private void sldLength_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
((Slider)sender).Value = Math.Round(((Slider)sender).Value);
}
答案 0 :(得分:1)
您可以使用Bindings。 像这样的Smth:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="auto"/>
</Grid.ColumnDefinitions>
<Slider Name="sldLength" Margin="0 0 0 0" Grid.Column="0"
Minimum="5" Maximum="30" SmallChange="1" LargeChange="1"
Value="10"/>
<TextBlock Name="tblLength" Margin="0 10 5 0" Text="{Binding ElemantName=sldLength, Path=Value}" Grid.Column="1"
FontSize="{StaticResource PhoneFontSizeMediumLarge}"/>
</Grid>
这里tblLength从sldLength的值中获取其文本。
答案 1 :(得分:0)
这对我来说非常合适。首先检查Slider的OldValue,无论是否为null。
private void slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
if(slider.OldValue != null)
{
textbox1.Text = silder1.Value.ToString();
}
}
希望这有帮助。