Пример #1
0
 public Button()
 {
     InitializeComponent();
     VolumeButton.MouseEnter += (sender, args) =>
     {
         if (!ShowVolumeToolBar)
         {
             return;
         }
         _temporaryToken?.Cancel();
         _temporaryToken            = new CancellationTokenSource();
         SliderContainer.Visibility = Visibility.Visible;
     };
     VolumeButton.MouseLeave += (sender, args) =>
     {
         if (!ShowVolumeToolBar)
         {
             return;
         }
         Task.Run(async delegate
         {
             var keep = _temporaryToken;
             await Task.Delay(TimeSpan.FromMilliseconds(500), keep.Token);
             Dispatcher.Invoke(delegate { SliderContainer.Visibility = Visibility.Collapsed; });
         });
     };
     if (Mute)
     {
         SetButtonVisibility(Muted);
     }
     else if (Volume > 0.66)
     {
         SetButtonVisibility(VolumeHigh);
     }
     else if (Volume > 0.33)
     {
         SetButtonVisibility(VolumeMid);
     }
     else
     {
         SetButtonVisibility(VolumeLow);
     }
     VolumeSlider.SetBinding(Slider.VolumeProperty,
                             new Binding("Volume")
     {
         Source = this, Mode = BindingMode.TwoWay
     });
 }