private static void HandleValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { MeteredSlider ss = d as MeteredSlider; //if (ss != null) //{ // if (ss.Minimum == -1) // Console.WriteLine("Hello"); //} if (ss != null && !ss._isUpdating) { ss._isUpdating = true; if (ss.Indenting == IndentRule.Always || (ss.Indenting == IndentRule.ShiftKey && (System.Windows.Input.Keyboard.Modifiers == ModifierKeys.Shift || System.Windows.Input.Keyboard.IsKeyToggled(Key.CapsLock)))) { if (ss.IsEnabled && ss.IsVisible && ss.ActualHeight > 0 && Mouse.LeftButton == MouseButtonState.Pressed && ss.IsMouseOver) { ss.SnapIfWithinIndentRange(); } } ss.SliderPosition = ss._rangeConverter.SourceToTarget(ss.Value); //if (ss.Minimum == -1) // Console.WriteLine(ss.Value.ToString("0.0000") + " --> " + ss.SliderPosition.ToString("0.0000")); //if (ss.Name == "Test") // Console.WriteLine(ss.SliderPosition); ss._isUpdating = false; ss.OnValueChanged(); } }
private static void OnTicksSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { MeteredSlider ss = d as MeteredSlider; if (ss == null) { return; } BindingExpressionBase beb = BindingOperations.GetBindingExpressionBase(d, TicksSourceProperty); if (beb != null) { throw new InvalidOperationException("The TicksSource property doesn't support data binding. Use StaticResource or DynamicResource or x:Static instead."); } ss._ticks.Clear(); SliderTick[] newTicks = e.NewValue as SliderTick[]; if (newTicks != null) { newTicks.Execute(ss._ticks.Add); } }
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { double dblValue; if (value == null) { return(value); } if (!double.TryParse(value.ToString(), out dblValue)) { return(value); } MeteredSlider ss = parameter as MeteredSlider; if (ss == null) { return(0); } _converter.SourceMin = ss.Minimum; _converter.SourceMax = ss.Maximum; _converter.ScaleFactor = ss.ScaleFactor; return(_converter.TargetToSource(dblValue)); }
private static void HandleSliderPositionChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { MeteredSlider ss = d as MeteredSlider; if (ss != null && !ss._isUpdating) { ss.Value = ss._rangeConverter.TargetToSource(ss.SliderPosition); } }
private static void HandleRangePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { MeteredSlider ss = d as MeteredSlider; if (ss != null) { ss.UpdateRangeProperties(); } }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { double dblValue; if (value == null) { return(value); } if (!double.TryParse(value.ToString(), out dblValue)) { return(value); } MeteredSlider ss = parameter as MeteredSlider; FrameworkElement fe = parameter as FrameworkElement; if (ss == null && fe != null) { if (fe.DataContext is MeteredSlider) { ss = fe.DataContext as MeteredSlider; } if (fe.Tag is MeteredSlider) { ss = fe.Tag as MeteredSlider; } } if (ss == null) { return(0); } _converter.SourceMin = ss.Minimum; _converter.SourceMax = ss.Maximum; _converter.ScaleFactor = ss.ScaleFactor; double result = _converter.SourceToTarget(dblValue); return(result); }