using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
using Bolt.Toolkit.Wpf.Data;
namespace VirgoUI.Client.Controls.Parts
{
///
/// SingleArmRobot.xaml 的交互逻辑
///
public partial class SingleArmRobot : UserControl, INotifyPropertyChanged
{
protected int moveTime = 300;
private const int AnimationTimeout = 3000;
private string CurrentPosition
{
get; set;
}
public int MoveTime
{
get => moveTime;
set
{
moveTime = value;
}
}
public int RotateAngle
{
get { return (int)GetValue(RotateAngleProperty); }
set { SetValue(RotateAngleProperty, value); }
}
// Using a DependencyProperty as the backing store for RotateAngel. This enables animation, styling, binding, etc...
public static readonly DependencyProperty RotateAngleProperty =
DependencyProperty.Register("RotateAngel", typeof(int), typeof(SingleArmRobot), new PropertyMetadata(0));
public Dictionary StationPosition
{
get { return (Dictionary)GetValue(StationPositionProperty); }
set { SetValue(StationPositionProperty, value); }
}
// Using a DependencyProperty as the backing store for StationPosition. This enables animation, styling, binding, etc...
public static readonly DependencyProperty StationPositionProperty =
DependencyProperty.Register("StationPosition", typeof(Dictionary), typeof(SingleArmRobot), new PropertyMetadata(null, StationPositionChangedCallback));
public RobotMoveInfo RobotMoveInfo
{
get { return (RobotMoveInfo)GetValue(RobotMoveInfoProperty); }
set { SetValue(RobotMoveInfoProperty, value); }
}
public static readonly DependencyProperty RobotMoveInfoProperty =
DependencyProperty.Register("RobotMoveInfo", typeof(RobotMoveInfo), typeof(SingleArmRobot), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender));
public WaferData Wafer
{
get { return (WaferData)GetValue(WaferProperty); }
set { SetValue(WaferProperty, value); }
}
// Using a DependencyProperty as the backing store for Wafer. This enables animation, styling, binding, etc...
public static readonly DependencyProperty WaferProperty =
DependencyProperty.Register("Wafer", typeof(WaferData), typeof(SingleArmRobot), new PropertyMetadata(null));
public string Station
{
get { return (string)GetValue(StationProperty); }
set { SetValue(StationProperty, value); }
}
// Using a DependencyProperty as the backing store for Station. This enables animation, styling, binding, etc...
public static readonly DependencyProperty StationProperty =
DependencyProperty.Register("Station", typeof(string), typeof(SingleArmRobot), new PropertyMetadata("Robot"));
public ICommand CreateDeleteWaferCommand
{
get { return (ICommand)GetValue(CreateDeleteWaferCommandProperty); }
set { SetValue(CreateDeleteWaferCommandProperty, value); }
}
// Using a DependencyProperty as the backing store for CreateDeleteWaferCommand. This enables animation, styling, binding, etc...
public static readonly DependencyProperty CreateDeleteWaferCommandProperty =
DependencyProperty.Register("CreateDeleteWaferCommand", typeof(ICommand), typeof(SingleArmRobot), new PropertyMetadata(null));
public ICommand MoveWaferCommand
{
get { return (ICommand)GetValue(MoveWaferCommandProperty); }
set { SetValue(MoveWaferCommandProperty, value); }
}
// Using a DependencyProperty as the backing store for MoveWaferCommand. This enables animation, styling, binding, etc...
public static readonly DependencyProperty MoveWaferCommandProperty =
DependencyProperty.Register("MoveWaferCommand", typeof(ICommand), typeof(SingleArmRobot), new PropertyMetadata(null));
public bool WaferPresent
{
get { return (bool)GetValue(WaferPresentProperty); }
set { SetValue(WaferPresentProperty, value); }
}
// Using a DependencyProperty as the backing store for WaferPresent. This enables animation, styling, binding, etc...
public static readonly DependencyProperty WaferPresentProperty =
DependencyProperty.Register("WaferPresent", typeof(bool), typeof(SingleArmRobot), new PropertyMetadata(false));
private List