private void RdbMinute_Click(object sender, RoutedEventArgs e) { var radioButton = sender as RadioButton; var minute = (int)radioButton.Tag; SelectedTime = new DateTime(SelectedTime.Year, SelectedTime.Month, SelectedTime.Day, SelectedTime.Hour, minute, SelectedTime.Second); ScrollMinute.ScrollToVerticalOffset((minute - 3) * radioButton.ActualHeight); }
private void InitMinutePanel() { var count = StkMinute.Children.Count; for (int i = 0; i < 60 - count; i++) { var border = new Border() { Height = 35 }; Grid.SetRow(border, (int)(i / 7)); Grid.SetColumn(border, i % 7); var radioButton = new RadioButton() { GroupName = "CLOCK_MINUTE", }; RadioButtonHelper.SetRadioButtonStyle(radioButton, RadioButtonStyle.Button); RadioButtonHelper.SetCornerRadius(radioButton, 0); radioButton.Click += RdbMinute_Click; SetBinding("Foreground", radioButton, ForegroundProperty); SetBinding("FontSize", radioButton, FontSizeProperty); SetBinding("ThemeBrush", radioButton, RadioButtonHelper.CheckedBackgroundProperty); border.Child = radioButton; StkMinute.Children.Add(border); } for (int i = 0; i < 60; i++) { var radioButton = (StkMinute.Children[i] as Border).Child as RadioButton; radioButton.IsChecked = SelectedTime.Minute == i; radioButton.Content = i.ToString("00"); radioButton.Tag = i; } ScrollMinute.ScrollToVerticalOffset((SelectedTime.Minute - 3) * 35); }
/// <summary> /// 重新设置RadioButton的时间(如果必要),选中指定的时间。 /// </summary> private void SelectTime(int hour, int minute, int second) { if (StkHour.Children.Count != 24 || StkMinute.Children.Count != 60 || StkSecond.Children.Count != 60) { return; } { var radio = StkHour.Children[hour] as PURadioButton; radio.IsChecked = true; ScrollHour.ScrollToVerticalOffset((hour - 2) * radio.ActualHeight); } { var radio = StkMinute.Children[minute] as PURadioButton; radio.IsChecked = true; ScrollMinute.ScrollToVerticalOffset((minute - 2) * radio.ActualHeight); } { var radio = StkSecond.Children[second] as PURadioButton; radio.IsChecked = true; ScrollSecond.ScrollToVerticalOffset((second - 2) * radio.ActualHeight); } }