private void InitHourPanel() { var count = StkHour.Children.Count; for (int i = 0; i < 24 - 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_HOUR", }; RadioButtonHelper.SetRadioButtonStyle(radioButton, RadioButtonStyle.Button); RadioButtonHelper.SetCornerRadius(radioButton, new CornerRadius(0)); radioButton.Click += RdbHour_Click; SetBinding("Foreground", radioButton, ForegroundProperty); SetBinding("FontSize", radioButton, FontSizeProperty); SetBinding("ThemeBrush", radioButton, RadioButtonHelper.CheckedBackgroundProperty); border.Child = radioButton; StkHour.Children.Add(border); } for (int i = 0; i < 24; i++) { var radioButton = (StkHour.Children[i] as Border).Child as RadioButton; radioButton.IsChecked = SelectedTime.Hour == i; radioButton.Content = i.ToString("00"); radioButton.Tag = i; } ScrollHour.ScrollToVerticalOffset((SelectedTime.Hour - 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); } }