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; using static CyberX8_Themes.UserControls.PufControl; namespace CyberX8_Themes.UserControls { /// /// LoaderControl.xaml 的交互逻辑 /// public partial class LoaderControl : UserControl { public enum LoaderRotation { TrnpA = 0, TrnpB = 1, Load = 2, Camera = 3, ServiceB = 4 } public LoaderControl() { InitializeComponent(); } public static readonly DependencyProperty WaferVisibleAProperty = DependencyProperty.Register("WaferVisibleA", typeof(bool), typeof(LoaderControl)); public bool WaferVisibleA { get { return (bool)this.GetValue(WaferVisibleAProperty); } set { this.SetValue(WaferVisibleAProperty, value); } } public static readonly DependencyProperty WaferVisibleBProperty = DependencyProperty.Register("WaferVisibleB", typeof(bool), typeof(LoaderControl)); public bool WaferVisibleB { get { return (bool)this.GetValue(WaferVisibleBProperty); } set { this.SetValue(WaferVisibleBProperty, value); } } public static readonly DependencyProperty LoaderWaferAProperty = DependencyProperty.Register("LoaderWaferA", typeof(WaferInfo), typeof(LoaderControl)); public WaferInfo LoaderWaferA { get => (WaferInfo)GetValue(LoaderWaferAProperty); set => SetValue(LoaderWaferAProperty, value); } public static readonly DependencyProperty LoaderWaferBProperty = DependencyProperty.Register("LoaderWaferB", typeof(WaferInfo), typeof(LoaderControl)); public WaferInfo LoaderWaferB { get => (WaferInfo)GetValue(LoaderWaferBProperty); set => SetValue(LoaderWaferBProperty, value); } /// /// Load Rotation位置 /// public static readonly DependencyProperty CurrentRotationProperty = DependencyProperty.Register("CurrentRotation", typeof(LoaderRotation), typeof(LoaderControl), new PropertyMetadata(LoaderRotation.TrnpA, RotationChangedCallback)); public LoaderRotation CurrentRotation { get { return (LoaderRotation)this.GetValue(CurrentRotationProperty); } set { this.SetValue(CurrentRotationProperty, value); } } //Looader Rotation动画触发 private static void RotationChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) { var newAct = (LoaderRotation)e.NewValue; var control = d as LoaderControl; GoToRotation(control, newAct); } private static void GoToRotation(Control control, LoaderRotation rotation) { VisualStateManager.GoToElementState(control, rotation.ToString(), false); } } }