using CyberX8_Core; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading; 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; using System.Windows.Threading; namespace CyberX8_Themes.UserControls { /// /// TransPorterControl.xaml 的交互逻辑 /// public partial class TransPorterControl : UserControl { #region 常量 private const int HEIGHT = 93; private const int WAFER_HOLDER_TOP= 60; #endregion public TransPorterControl() { InitializeComponent(); } public static readonly DependencyProperty TransPorterNameProperty = DependencyProperty.Register( "TransPorterName", typeof(string), typeof(TransPorterControl), new FrameworkPropertyMetadata("Loader TransPorter", FrameworkPropertyMetadataOptions.AffectsRender)); public string TransPorterName { get { return this.GetValue(TransPorterNameProperty).ToString(); } set { this.SetValue(TransPorterNameProperty, value); } } public static readonly DependencyProperty WaferHolderVisibleProperty = DependencyProperty.Register( "WaferHolderVisible", typeof(bool), typeof(TransPorterControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); public bool WaferHolderVisible { get { return (bool)this.GetValue(WaferHolderVisibleProperty); } set { this.SetValue(WaferHolderVisibleProperty, value); } } public static readonly DependencyProperty VerticalPositionProperty = DependencyProperty.Register("VerticalPosition", typeof(double), typeof(TransPorterControl), new PropertyMetadata((double)93,new PropertyChangedCallback(VerticalPositionPropertyChanged))); public double VerticalPosition { get { return (double)this.GetValue(VerticalPositionProperty); } set { this.SetValue(VerticalPositionProperty, value); } } public static readonly DependencyProperty LiftHolderPositionProperty = DependencyProperty.Register("LiftHolderPosition", typeof(double), typeof(TransPorterControl), new PropertyMetadata((double)93)); public double LiftHolderPosition { get { return (double)this.GetValue(LiftHolderPositionProperty); } set { this.SetValue(LiftHolderPositionProperty, value); } } public static readonly DependencyProperty WaferHolderPositionProperty = DependencyProperty.Register("WaferHolderPosition", typeof(double), typeof(TransPorterControl), new PropertyMetadata((double)93)); public double WaferHolderPosition { get { return (double)this.GetValue(WaferHolderPositionProperty); } set { this.SetValue(WaferHolderPositionProperty, value); } } public static readonly DependencyProperty IsLoaderTransporterProperty = DependencyProperty.Register( "IsLoaderTransporter", typeof(bool), typeof(TransPorterControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); public bool IsLoaderTransporter { get { return (bool)this.GetValue(IsLoaderTransporterProperty); } set { this.SetValue(IsLoaderTransporterProperty, value); } } public static readonly DependencyProperty IsProcessTransporterProperty = DependencyProperty.Register( "IsProcessTransporter", typeof(bool), typeof(TransPorterControl), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.AffectsRender)); public bool IsProcessTransporter { get { return (bool)this.GetValue(IsProcessTransporterProperty); } set { this.SetValue(IsProcessTransporterProperty, value); } } public static readonly DependencyProperty IsWHEnableProperty = DependencyProperty.Register( "IsWHEnable", typeof(bool), typeof(TransPorterControl), new FrameworkPropertyMetadata(true, FrameworkPropertyMetadataOptions.AffectsRender)); /// /// 模块名称 /// public bool IsWHEnable { get { return (bool)this.GetValue(IsWHEnableProperty); } set { this.SetValue(IsWHEnableProperty, value); } } /// /// 垂直水平发生变化 /// /// /// private static void VerticalPositionPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if(e.NewValue!=null) { double newValue = (double)e.NewValue; d.SetValue(LiftHolderPositionProperty, newValue - HEIGHT); d.SetValue(WaferHolderPositionProperty, newValue + WAFER_HOLDER_TOP); } } private void Canvas_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { string name = ""; if("Loader Transporter".Equals(TransPorterName)) { name = "Transporter2Teach"; } if ("Process Transporter".Equals(TransPorterName)) { name = "Transporter1Teach"; } GlobalEvents.OnSwitchFixedTabItem("HardWare", "Transpoters", $"{name}"); } } }