Slider Thumb DragCompleted Event WPF
Occurs when the Thumb control loses mouse capture.
The following example shows how to assign an event handler for the DragCompleted event to a Thumb control, and how to define the event handler.
1 2 3 4 5 6 |
#region Constructor public void Initialize(UIElement element) { var sliderBox = FindChild<Slider>(Application.Current.MainWindow, "MySlider"); slider.AddHandler(System.Windows.Controls.Primitives.Thumb.DragCompletedEvent, new System.Windows.Controls.Primitives.DragCompletedEventHandler(SliderPositionOnDragCompleted)); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
private void SliderPositionOnDragCompleted(object sender, DragCompletedEventArgs e) { try { var d = sender as Slider; Trace.Debug("SliderPositionOnDragCompleted " + d.Name); } catch (Exception exception) { Trace.Error(exception); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
public static T FindChild<T>(DependencyObject parent, string childName) where T : DependencyObject { // Confirm parent and childName are valid. if (parent == null) return null; T foundChild = null; int childrenCount = VisualTreeHelper.GetChildrenCount(parent); for (int i = 0; i < childrenCount; i++) { var child = VisualTreeHelper.GetChild(parent, i); // If the child is not of the request child type child T childType = child as T; if (childType == null) { // recursively drill down the tree foundChild = FindChild<T>(child, childName); // If the child is found, break so we do not overwrite the found child. if (foundChild != null) break; } else if (!string.IsNullOrEmpty(childName)) { var frameworkElement = child as FrameworkElement; // If the child's name is set for search if (frameworkElement != null && frameworkElement.Name == childName) { // if the child's name is of the request name foundChild = (T)child; break; } } else { // child element found. foundChild = (T)child; break; } } return foundChild; } |