コード例 #1
0
ファイル: MeteredSlider.cs プロジェクト: neilmckg/WPFSynth
        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();
            }
        }