ucDisplayCoordinate.xaml.cs 1.88 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 ucDisplayAxisPosition.xaml
    /// </summary>
    public partial class ucDisplayCoordinate : UserControl
    {
        public ucDisplayCoordinate()
        {
            InitializeComponent();
        }

        private bool _isDisplay = false;

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

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

        public bool IsDisplay
        {
            get { return _isDisplay; }
            set { _isDisplay = value; }
        }

        private void UpdateCoordString(double X, double Y)
        {
            coordString = "(" + Math.Round(X, 2) + ", " + Math.Round(Y, 2) + ")";
        }

        private void UpdateCoordString(Point point)
        {
            coordString = "(" + Math.Round(point.X, 2) + ", " + Math.Round(point.Y, 2) + ")";
        }

        private void UpdatePosition(Point point)
        {
            Canvas.SetTop(this, point.Y + 10);
            Canvas.SetLeft(this, point.X + 10);

            UpdateCoordString(point);
        }

        // Display
        public void Display(Point point)
        {
            IsDisplay = true;
            UpdatePosition(point);
        }
    }
}