using OpenSEMI.ClientBase; 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 CyberX8_Themes.UserControls { /// /// PufControl.xaml 的交互逻辑 /// public partial class PufControl : UserControl { public enum LoaderXLocation { Parker = 0, Efem = 1, Loader = 2 } public enum LoaderRotation { Origin=0, Reverse = 1 } public PufControl() { InitializeComponent(); } public static readonly DependencyProperty RotateTransformValueProperty = DependencyProperty.Register("RotateTransformValue", typeof(int), typeof(PufControl)); public int RotateTransformValue { get { return (int)this.GetValue(RotateTransformValueProperty); } set { this.SetValue(RotateTransformValueProperty, value); } } public static readonly DependencyProperty PufNameProperty = DependencyProperty.Register("PufName", typeof(string), typeof(PufControl)); public string PufName { get { return this.GetValue(PufNameProperty).ToString(); } set { this.SetValue(PufNameProperty, value); } } public static readonly DependencyProperty RobotWaferAProperty = DependencyProperty.Register("RobotWaferA", typeof(WaferInfo), typeof(PufControl)); public WaferInfo RobotWaferA { get => (WaferInfo)GetValue(RobotWaferAProperty); set => SetValue(RobotWaferAProperty, value); } public static readonly DependencyProperty RobotWaferBProperty = DependencyProperty.Register("RobotWaferB", typeof(WaferInfo), typeof(PufControl)); public WaferInfo RobotWaferB { get => (WaferInfo)GetValue(RobotWaferBProperty); set => SetValue(RobotWaferBProperty, value); } //public static readonly DependencyProperty IsPufChangeProperty = DependencyProperty.Register("IsPufChange", typeof(bool), typeof(PufControl)); //public bool IsPufChange //{ // get => (bool)GetValue(IsPufChangeProperty); // set => SetValue(IsPufChangeProperty, value); //} /// /// Puf Roation UI 动画位置 /// public static readonly DependencyProperty CurrentXLocationProperty = DependencyProperty.Register("CurrentXLocation", typeof(LoaderXLocation), typeof(PufControl), new PropertyMetadata(LoaderXLocation.Parker, PositionChangedCallback)); public LoaderXLocation CurrentXLocation { get { return (LoaderXLocation)this.GetValue(CurrentXLocationProperty); } set { this.SetValue(CurrentXLocationProperty, value); } } /// /// Puf Flip UI 动画位置 /// public static readonly DependencyProperty CurrentRotationProperty = DependencyProperty.Register("CurrentRotation", typeof(LoaderRotation), typeof(PufControl), new PropertyMetadata(LoaderRotation.Origin, RotationChangedCallback)); public LoaderRotation CurrentRotation { get { return (LoaderRotation)this.GetValue(CurrentRotationProperty); } set { this.SetValue(CurrentRotationProperty, value); } } /// /// Puf Rotation UI位置 /// public static readonly DependencyProperty PufRotationPositionProperty = DependencyProperty.Register("PufRotationPosition", typeof(double), typeof(PufControl), new PropertyMetadata((double)15)); public double PufRotationPosition { get { return (double)this.GetValue(PufRotationPositionProperty); } set { this.SetValue(PufRotationPositionProperty, value); } } /// /// Puf Flip UI位置 /// public static readonly DependencyProperty PufFlipPositionProperty = DependencyProperty.Register("PufFlipPosition", typeof(double), typeof(PufControl), new PropertyMetadata((double)15)); public double PufFlipPosition { get { return (double)this.GetValue(PufFlipPositionProperty); } set { this.SetValue(PufFlipPositionProperty, value); } } private static void PositionChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) { var newAct = (LoaderXLocation)e.NewValue; var control = d as PufControl; GoToPosition(control, newAct); } private static void RotationChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) { var newAct = (LoaderRotation)e.NewValue; var control = d as PufControl; GoToRotation(control, newAct); } private static void GoToPosition(Control control, LoaderXLocation location) { VisualStateManager.GoToElementState(control, location.ToString(), false); } private static void GoToRotation(Control control, LoaderRotation rotation) { VisualStateManager.GoToElementState(control, rotation.ToString(), false); } } }