Beispiel #1
0
        private void RdbSecond_Click(object sender, RoutedEventArgs e)
        {
            var radioButton = sender as RadioButton;
            var second      = (int)radioButton.Tag;

            SelectedTime = new DateTime(SelectedTime.Year, SelectedTime.Month, SelectedTime.Day, SelectedTime.Hour, SelectedTime.Minute, second);
            ScrollSecond.ScrollToVerticalOffset((second - 3) * radioButton.ActualHeight);
        }
Beispiel #2
0
        private void InitSecondPanel()
        {
            var count = StkSecond.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_SECOND",
                };
                RadioButtonHelper.SetRadioButtonStyle(radioButton, RadioButtonStyle.Button);
                RadioButtonHelper.SetCornerRadius(radioButton, 0);
                radioButton.Click += RdbSecond_Click;

                SetBinding("Foreground", radioButton, ForegroundProperty);
                SetBinding("FontSize", radioButton, FontSizeProperty);
                SetBinding("ThemeBrush", radioButton, RadioButtonHelper.CheckedBackgroundProperty);
                border.Child = radioButton;
                StkSecond.Children.Add(border);
            }

            for (int i = 0; i < 60; i++)
            {
                var radioButton = (StkSecond.Children[i] as Border).Child as RadioButton;

                radioButton.IsChecked = SelectedTime.Second == i;
                radioButton.Content   = i.ToString("00");
                radioButton.Tag       = i;
            }

            ScrollSecond.ScrollToVerticalOffset((SelectedTime.Second - 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);
     }
 }