ucStartEndButton.xaml.cs 3.79 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace RoboforkApp
{
    /// <summary>
    /// Interaction logic for StartEndButton.xaml
    /// </summary>
    public partial class ucStartEndButton : UserControl
    {
        public ucStartEndButton()
        {
            InitializeComponent();
        }

        private bool _isFocus = false;

        public static readonly DependencyProperty buttTextProperty =
        DependencyProperty.Register("buttText", typeof(String),
        typeof(ucStartEndButton), new FrameworkPropertyMetadata(string.Empty));

        public static readonly DependencyProperty btnWidthProperty =
        DependencyProperty.Register("btnWidth", typeof(double),
        typeof(ucStartEndButton), new FrameworkPropertyMetadata(10.0));

        public static readonly DependencyProperty btnHeightProperty =
        DependencyProperty.Register("btnHeight", typeof(double),
        typeof(ucStartEndButton), new FrameworkPropertyMetadata(10.0));

        public static readonly DependencyProperty coordStringProperty =
        DependencyProperty.Register("coordString", typeof(String),
        typeof(ucStartEndButton), new FrameworkPropertyMetadata(string.Empty));

        public String buttText
        {
            get { return GetValue(buttTextProperty).ToString(); }
            set { SetValue(buttTextProperty, value); }
        }

        public double btnWidth
        {
            get { return (double)GetValue(btnWidthProperty); }
            set { SetValue(btnWidthProperty, value); }

        }

        public double btnHeight
        {
            get { return (double)GetValue(btnHeightProperty); }
            set { SetValue(btnHeightProperty, value); }

        }
        public String coordString
        {
            get { return GetValue(coordStringProperty).ToString(); }
            set { SetValue(coordStringProperty, value); }
        }
        

        public bool IsFocus
        {
            get { return _isFocus; }
            set { _isFocus = value; }
        }

        private void btnHello_MouseDown(object sender, MouseButtonEventArgs e)
        {
            _isFocus = true;
        }

        private void btnHello_MouseUp(object sender, MouseButtonEventArgs e)
        {

        }

        private void btnHello_MouseMove(object sender, MouseEventArgs e)
        {

        }

        private void tmbThumb_DragDelta(object sender, System.Windows.Controls.Primitives.DragDeltaEventArgs e)
        {  
            if(DesignerCanvas.isStartDrawRoute)
            {
                return;
            }

            double left = Canvas.GetLeft(this);
            double top = Canvas.GetTop(this);
            if (0 < (top + e.VerticalChange)
                && (top + e.VerticalChange) < (1000 - btnHeight))
            {
                Canvas.SetTop(this, top + e.VerticalChange);
            }
            if (0 < (left + e.HorizontalChange)
                && (left + e.HorizontalChange) < (1000 - btnWidth))
            {
                Canvas.SetLeft(this, left + e.HorizontalChange);
            }
            
            UpdateCoordString(left, top);
        }

        private void UpdateCoordString(double left, double top)
        {
            coordString = "(" + Math.Round((left + btnWidth / 2), 2) + "," + Math.Round((top + btnHeight / 2),2) + ")";
        }

        private void tmbThumb_DragCompleted(object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e)
        {
            coordString = String.Empty;
        }


    }
}