私の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 つの問題:
- アプリケーションが読み込まれると ValueChanged イベントが発生します。これは問題ではありませんが、何らかの理由でイベント発生時に tblLength が NULL であり、これが例外をスローするため、その NULL をチェックするifステートメントでラップしましたが、これは確かに問題になるべきではありませんか?
- SmallChange と LargeChange が 1 に設定されていても、Slider は 1 ずつ変化しません。どうすれば修正できますか?
助けてくれてありがとう...
- 編集 -
Chepene 提案で問題 1 を解決しました。
少し生意気なイベント ハンドラーで問題 2 を解決しました。
private void sldLength_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
((Slider)sender).Value = Math.Round(((Slider)sender).Value);
}