コード例 #1
0
ファイル: CurveEditor.cs プロジェクト: thomasvt/pose
        protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
        {
            if (_draggedHandle == null)
            {
                return;
            }

            ReleaseMouseCapture();
            _draggedHandle = null;
            BezierHandleReleased?.Invoke();
        }
コード例 #2
0
ファイル: CurveEditor.cs プロジェクト: thomasvt/pose
        private void ConfigureBezierHandle(BezierHandle handle, Line handleLine)
        {
            handle.MouseLeftButtonDown += (sender, args) =>
            {
                if (IsReadOnly)
                {
                    return;
                }

                _initialPosition        = new Point((double)handle.GetValue(Canvas.LeftProperty) + 4d, (double)handle.GetValue(Canvas.TopProperty) + 4d);
                _dragStartMousePosition = args.GetPosition(this);
                _draggedHandle          = handle;
                Mouse.Capture(this);
            };
        }
コード例 #3
0
ファイル: CurveEditor.cs プロジェクト: thomasvt/pose
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();
            _path   = GetTemplateChild("Path") as Path;
            _canvas = GetTemplateChild("Canvas") as Canvas;

            _handleA = GetTemplateChild("HandleA") as BezierHandle;


            _handleB = GetTemplateChild("HandleB") as BezierHandle;

            _handleALine = GetTemplateChild("HandleALine") as Line;
            _handleBLine = GetTemplateChild("HandleBLine") as Line;

            ConfigureBezierHandle(_handleA, _handleALine);
            ConfigureBezierHandle(_handleB, _handleBLine);

            _curveOptionsComboBox             = GetTemplateChild("CurveOptionsComboBox") as ComboBox;
            _curveOptionsComboBox.ItemsSource = new List <CurveType> {
                CurveType.Linear, CurveType.Hold, CurveType.Bezier
            };

            UpdateForCurveType();
        }
コード例 #4
0
ファイル: CurveEditor.cs プロジェクト: thomasvt/pose
 private void UpdateBezierHandle(BezierHandle handle, Line handleLine, in Vector2 location)