SicMultiplate/SicUI/Controls/Mainframe/Chamber.xaml.cs

144 lines
5.3 KiB
C#

using Aitex.Core.Common;
using Aitex.Sorter.Common;
using MECF.Framework.Common.Equipment;
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 CB = MECF.Framework.UI.Client.ClientBase;
namespace SicUI.Controls.Parts
{
/// <summary>
/// Chamber.xaml 的交互逻辑
/// </summary>
public partial class Chamber : UserControl
{
private double PM1 = 127;
private double PM2 = 75;
private double PM3 = -25;
private double PM4 = -129;
public Chamber()
{
InitializeComponent();
}
public CB.WaferInfo WaferData
{
get { return (CB.WaferInfo)GetValue(WaferDataProperty); }
set { SetValue(WaferDataProperty, value); }
}
public static readonly DependencyProperty WaferDataProperty =
DependencyProperty.Register("WaferData", typeof(CB.WaferInfo), typeof(Chamber), new PropertyMetadata(null));
// public WaferInfo Wafer
// {
// get { return (WaferInfo)GetValue(WaferProperty); }
// set { SetValue(WaferProperty, value); }
// }
// // Using a DependencyProperty as the backing store for WaferItem. This enables animation, styling, binding, etc...
// public static readonly DependencyProperty WaferProperty =
// DependencyProperty.Register("Wafer", typeof(WaferInfo), typeof(Chamber), new PropertyMetadata(null));
// public ModuleName Station
// {
// get { return (ModuleName)GetValue(StationProperty); }
// set { SetValue(StationProperty, value); }
// }
// // Using a DependencyProperty as the backing store for WaferItem. This enables animation, styling, binding, etc...
// public static readonly DependencyProperty SlotProperty =
// DependencyProperty.Register("Slot", typeof(int), typeof(Chamber), new PropertyMetadata(0));
// public int Slot
// {
// get { return (int)GetValue(SlotProperty); }
// set { SetValue(SlotProperty, 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(ModuleName), typeof(Chamber), new PropertyMetadata(ModuleName.System));
public FoupDoorState DoorState
{
get { return (FoupDoorState)GetValue(DoorStateProperty); }
set { SetValue(DoorStateProperty, value); }
}
// Using a DependencyProperty as the backing store for DoorState. This enables animation, styling, binding, etc...
public static readonly DependencyProperty DoorStateProperty =
DependencyProperty.Register("DoorState", typeof(FoupDoorState), typeof(Chamber), new PropertyMetadata(FoupDoorState.Unknown));
public ICommand Command
{
get { return (ICommand)GetValue(CommandProperty); }
set { SetValue(CommandProperty, value); }
}
// Using a DependencyProperty as the backing store for Command. This enables animation, styling, binding, etc...
public static readonly DependencyProperty CommandProperty =
DependencyProperty.Register("Command", typeof(ICommand), typeof(Chamber), new PropertyMetadata(null));
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
var cmd = ((MenuItem)sender).Tag;
Command.Execute(new[] { WaferData.ModuleID, cmd });
}
#region wafer
public static readonly DependencyProperty WaferAngleProperty =
DependencyProperty.Register("WaferAngleChanged", typeof(string), typeof(Chamber), new PropertyMetadata(WaferAngleCurrentStsChanged));
public static void WaferAngleCurrentStsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
Chamber control = (Chamber)d;
if (e.Property == WaferAngleProperty)
{
control.WaferAngleChanged = (string)e.NewValue;
}
}
public string WaferAngleChanged
{
get { return (string)GetValue(WaferAngleProperty); }
set
{
SetValue(WaferAngleProperty, value);
RotateTransform rotateTransform = null;
switch (WaferAngleChanged)
{
case "PM1":
rotateTransform = new RotateTransform(PM1);
break;
case "PM2":
rotateTransform = new RotateTransform(PM2);
break;
case "PM3":
rotateTransform = new RotateTransform(PM3);
break;
case "PM4":
rotateTransform = new RotateTransform(PM4);
break;
}
//local_Wafer.RenderTransform = rotateTransform;
this.UpdateLayout();
}
}
#endregion
}
}