终端一体化运控平台
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

Silos.xaml.cs 26 KiB

2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656
  1. using BPASmartClient.Compiler;
  2. using BPASmartClient.DATABUS;
  3. using BPASmartClient.MessageCommunication;
  4. using BPASmartClient.MessageCommunication.MsgControl;
  5. using BPASmartClient.MessageName;
  6. using BPASmartClient.MessageName.EnumHelp;
  7. using BPASmartClient.MessageName.发送消息Model;
  8. using BPASmartClient.MessageName.接收消息Model;
  9. using BPASmartClient.MessageName.接收消息Model.物料仓;
  10. using Newtonsoft.Json;
  11. using System;
  12. using System.Collections;
  13. using System.Collections.Generic;
  14. using System.Collections.ObjectModel;
  15. using System.ComponentModel;
  16. using System.Drawing.Design;
  17. using System.Linq;
  18. using System.Reflection;
  19. using System.Text;
  20. using System.Threading.Tasks;
  21. using System.Windows;
  22. using System.Windows.Controls;
  23. using System.Windows.Data;
  24. using System.Windows.Documents;
  25. using System.Windows.Input;
  26. using System.Windows.Media;
  27. using System.Windows.Media.Animation;
  28. using System.Windows.Media.Imaging;
  29. using System.Windows.Navigation;
  30. using System.Windows.Shapes;
  31. using System.Windows.Threading;
  32. namespace BPASmartClient.SCADAControl.CustomerControls
  33. {
  34. /// <summary>
  35. /// Silos.xaml 的交互逻辑
  36. /// 物料仓
  37. /// </summary>
  38. public partial class Silos :UserControl, IExecutable, IDisposable
  39. {
  40. #region 临时变量
  41. TextBlock textBlockCLKZ = null;
  42. TextBlock textBlockValue = null;
  43. TextBlock textBlockText = null;
  44. TextBlock textBlockTitle = null;
  45. Ellipse ellipseControl = null;
  46. Storyboard storyboard = new Storyboard();
  47. object typeName;
  48. public List<string> typeNameList = new List<string>();
  49. public Enum @enum = null;
  50. #endregion
  51. public Silos()
  52. {
  53. InitializeComponent();
  54. this.DataContext = this;
  55. Width = 180;
  56. Height = 270;
  57. this.SizeChanged += Silos_SizeChanged; ;
  58. this.Loaded += Silos_Loaded;
  59. }
  60. private void Silos_Loaded(object sender,RoutedEventArgs e)
  61. {
  62. EventReceiveNameList.CollectionChanged += EventNameList_CollectionChanged;
  63. }
  64. private void EventNameList_CollectionChanged(object? sender,System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
  65. {
  66. if (EventReceiveNameList.Count > 0)
  67. {
  68. try
  69. {
  70. EventReceiveNameListStr = JsonConvert.SerializeObject(EventReceiveNameList);
  71. }
  72. catch (Exception ex)
  73. {
  74. }
  75. }
  76. }
  77. public string ControlType => "物料仓";
  78. private bool isExecuteState;
  79. public bool IsExecuteState
  80. {
  81. get { return isExecuteState; }
  82. set
  83. {
  84. isExecuteState = value;
  85. if (IsExecuteState)
  86. {
  87. IsEnabled = true;
  88. Register();
  89. //Style = null;
  90. }
  91. }
  92. }
  93. #region 动画
  94. /// <summary>
  95. /// 加载内部变量
  96. /// </summary>
  97. private void Silos_SizeChanged(object sender,SizeChangedEventArgs e)
  98. {
  99. //查找
  100. if (ellipseControl == null)
  101. {
  102. foreach (Ellipse tb in FindVisualChildren<Ellipse>(this))
  103. {
  104. // do something with tb here
  105. if (tb.Tag != null)
  106. {
  107. if (tb.Tag.ToString() == "出料圆")
  108. {
  109. ellipseControl = tb;
  110. storyboard.RepeatBehavior = RepeatBehavior.Forever;
  111. DoubleAnimationUsingKeyFrames animation = new DoubleAnimationUsingKeyFrames();
  112. Storyboard.SetTarget(animation,ellipseControl);
  113. Storyboard.SetTargetProperty(animation,new PropertyPath("(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)"));
  114. animation.KeyFrames.Add(new EasingDoubleKeyFrame(0,KeyTime.FromTimeSpan(TimeSpan.FromSeconds(0))));
  115. animation.KeyFrames.Add(new EasingDoubleKeyFrame(180,KeyTime.FromTimeSpan(TimeSpan.FromSeconds(1))));
  116. animation.KeyFrames.Add(new EasingDoubleKeyFrame(360,KeyTime.FromTimeSpan(TimeSpan.FromSeconds(2))));
  117. storyboard.Children.Add(animation);
  118. }
  119. }
  120. }
  121. foreach (TextBlock tb in FindVisualChildren<TextBlock>(this))
  122. {
  123. // do something with tb here
  124. if (tb.Tag != null)
  125. {
  126. if (tb.Tag.ToString() == "出料控制")
  127. {
  128. textBlockCLKZ = tb;
  129. }
  130. else if (tb.Tag.ToString() == "Value")
  131. {
  132. textBlockValue = tb;
  133. }
  134. else if (tb.Tag.ToString() == "Text")
  135. {
  136. textBlockText = tb;
  137. }
  138. else if (tb.Tag.ToString() == "Title")
  139. {
  140. textBlockTitle = tb;
  141. }
  142. }
  143. }
  144. foreach (StackPanel tb in FindVisualChildren<StackPanel>(this))
  145. {
  146. // do something with tb here
  147. if (tb.Tag != null)
  148. {
  149. if (tb.Tag.ToString() == "ControlEvent")
  150. {
  151. foreach (var item in tb.Children)
  152. {
  153. if (item is Image)
  154. {
  155. (item as Image).MouseLeftButtonDown += Image_MouseLeftButtonDown;
  156. if ((item as Image).Tag != null)
  157. typeNameList.Add((item as Image).Tag?.ToString());
  158. }
  159. else if (item is Button)
  160. {
  161. (item as Button).Click += Button_Click;
  162. if ((item as Button).Tag != null)
  163. typeNameList.Add((item as Button).Tag?.ToString());
  164. }
  165. else if (item is TextBox)
  166. {
  167. (item as TextBox).TextChanged += TextBox_TextChanged;
  168. if ((item as TextBox).Tag != null)
  169. typeNameList.Add((item as TextBox).Tag?.ToString());
  170. }
  171. else if (item is CheckBox)
  172. {
  173. (item as CheckBox).Checked += CheckBox_Checked;
  174. (item as CheckBox).Unchecked += CheckBox_Unchecked;
  175. if ((item as CheckBox).Tag != null)
  176. typeNameList.Add((item as CheckBox).Tag?.ToString());
  177. }
  178. }
  179. @enum = EnumExtensions.CreateEnum(typeNameList,$"{this.Name}ControlEunm");
  180. }
  181. }
  182. }
  183. }
  184. }
  185. public static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject
  186. {
  187. if (depObj != null)
  188. {
  189. for (int i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
  190. {
  191. DependencyObject child = VisualTreeHelper.GetChild(depObj,i);
  192. if (child != null && child is T)
  193. {
  194. yield return (T)child;
  195. }
  196. foreach (T childOfChild in FindVisualChildren<T>(child))
  197. {
  198. yield return childOfChild;
  199. }
  200. }
  201. }
  202. }
  203. #endregion
  204. #region 属性
  205. [Category("值设定")]
  206. public string KgValue
  207. {
  208. get { return (string)GetValue(ValueProperty); }
  209. set { SetValue(ValueProperty,value); }
  210. }
  211. public static readonly DependencyProperty ValueProperty =
  212. DependencyProperty.Register("KgValue", typeof(string),typeof(Silos),new PropertyMetadata(new PropertyChangedCallback(onTargetChanged)));
  213. private static void onTargetChanged(DependencyObject d,DependencyPropertyChangedEventArgs e) => (d as Silos)?.TargetRefresh();
  214. [Category("值设定")]
  215. public string WLText
  216. {
  217. get { return (string)GetValue(TextProperty); }
  218. set { SetValue(TextProperty,value); }
  219. }
  220. public static readonly DependencyProperty TextProperty =
  221. DependencyProperty.Register("WLText", typeof(string),typeof(Silos),new PropertyMetadata(new PropertyChangedCallback(onTargetChanged)));
  222. [Category("值设定")]
  223. public string WLTitle
  224. {
  225. get { return (string)GetValue(TitleProperty); }
  226. set { SetValue(TitleProperty,value); }
  227. }
  228. public static readonly DependencyProperty TitleProperty =
  229. DependencyProperty.Register("WLTitle", typeof(string),typeof(Silos),new PropertyMetadata(new PropertyChangedCallback(onTargetChanged)));
  230. [Category("值设定")]
  231. public int Direction
  232. {
  233. get { return (int)GetValue(DirectionProperty); }
  234. set { SetValue(DirectionProperty,value); }
  235. }
  236. public static readonly DependencyProperty DirectionProperty =
  237. DependencyProperty.Register("Direction",typeof(int),typeof(Silos),
  238. new PropertyMetadata(0,new PropertyChangedCallback(OnPropertyChanged)));
  239. private static void OnPropertyChanged(DependencyObject d,DependencyPropertyChangedEventArgs e)
  240. {
  241. (d as Silos)?.Refresh();
  242. }
  243. [Category("名称[自动生成]")]
  244. public string EventReceiveNameListStr
  245. {
  246. get { return (string)GetValue(EventReceiveNameListStrProperty); }
  247. set { SetValue(EventReceiveNameListStrProperty,value); }
  248. }
  249. public static readonly DependencyProperty EventReceiveNameListStrProperty =
  250. DependencyProperty.Register("EventReceiveNameListStr",typeof(string),typeof(Silos),new PropertyMetadata(string.Empty,new PropertyChangedCallback(onEventReceiveNameListStrChanged)));
  251. private static void onEventReceiveNameListStrChanged(DependencyObject d,DependencyPropertyChangedEventArgs e) => (d as Silos)?.ReceiveNameRefresh();
  252. [Category("消息接收名称集合")]
  253. public ObservableCollection<EventReceiveMessage> EventReceiveNameList
  254. {
  255. get { return (ObservableCollection<EventReceiveMessage>)GetValue(EventReceiveNameListProperty); }
  256. set { SetValue(EventReceiveNameListProperty,value); }
  257. }
  258. public static readonly DependencyProperty EventReceiveNameListProperty =
  259. DependencyProperty.Register("EventReceiveNameList",typeof(ObservableCollection<EventReceiveMessage>),typeof(Silos),new PropertyMetadata(new ObservableCollection<EventReceiveMessage>()));
  260. #endregion
  261. #region 数据绑定模块
  262. public event EventHandler PropertyChange; //声明一个事件
  263. //[Category("数据绑定-数据来源")]
  264. //public DataTypeEnum DataSouceType
  265. //{
  266. // get { return (DataTypeEnum)GetValue(DataSouceTypeProperty); }
  267. // set { SetValue(DataSouceTypeProperty,value); }
  268. //}
  269. //public static readonly DependencyProperty DataSouceTypeProperty =
  270. // DependencyProperty.Register("DataSouceType",typeof(DataTypeEnum),typeof(Silos),new PropertyMetadata(DataTypeEnum.静态数据));
  271. [Category("数据绑定-数据来源")]
  272. public int TimeCount
  273. {
  274. get { return (int)GetValue(TimeCountProperty); }
  275. set { SetValue(TimeCountProperty,value); }
  276. }
  277. public static readonly DependencyProperty TimeCountProperty =
  278. DependencyProperty.Register("TimeCount",typeof(int),typeof(Silos),new PropertyMetadata(5));
  279. //[Category("数据绑定-数据来源")]
  280. //public string DataSouceInformation
  281. //{
  282. // get { return (string)GetValue(DataSouceInformationProperty); }
  283. // set { SetValue(DataSouceInformationProperty,value); }
  284. //}
  285. //public static readonly DependencyProperty DataSouceInformationProperty =
  286. // DependencyProperty.Register("DataSouceInformation",typeof(string),typeof(Silos),new PropertyMetadata(string.Empty));
  287. //[Category("数据绑定-数据来源")]
  288. //public string DeviceName
  289. //{
  290. // get { return (string)GetValue(DeviceNameProperty); }
  291. // set { SetValue(DeviceNameProperty,value); }
  292. //}
  293. //public static readonly DependencyProperty DeviceNameProperty =
  294. // DependencyProperty.Register("DeviceName",typeof(string),typeof(Silos),new PropertyMetadata(string.Empty));
  295. //[Category("数据绑定-数据来源")]
  296. //public string DeviceValuleName
  297. //{
  298. // get { return (string)GetValue(DeviceValuleNameProperty); }
  299. // set { SetValue(DeviceValuleNameProperty,value); }
  300. //}
  301. //public static readonly DependencyProperty DeviceValuleNameProperty =
  302. // DependencyProperty.Register("DeviceValuleName",typeof(string),typeof(Silos),new PropertyMetadata(string.Empty));
  303. [Category("数据绑定")]
  304. public string FDataSouce
  305. {
  306. get { return (string)GetValue(FDataSouceProperty); }
  307. set { SetValue(FDataSouceProperty,value); }
  308. }
  309. public static readonly DependencyProperty FDataSouceProperty =
  310. DependencyProperty.Register("FDataSouce",typeof(string),typeof(Silos),new PropertyMetadata(string.Empty,new PropertyChangedCallback(onFDataSouceChanged)));
  311. private static void onFDataSouceChanged(DependencyObject d,DependencyPropertyChangedEventArgs e) => (d as Silos)?.DataSouceRefresh();
  312. public void DataSouceRefresh()
  313. {
  314. try
  315. {
  316. if (!string.IsNullOrEmpty(FDataSouce))
  317. {
  318. GenerateData = (string)CSharpConfig.GetInstance().RunCSharp(Code,new object[] { FDataSouce });
  319. if (PropertyChange != null)
  320. {
  321. PropertyChange(this,null);
  322. }
  323. }
  324. }
  325. catch (Exception ex)
  326. {
  327. }
  328. }
  329. public static string _code = "public string main(string message) \n{ \n //请在此填写你的代码\n\n return message; \n}\n";
  330. [Category("数据绑定")]
  331. public string Code
  332. {
  333. get { return (string)GetValue(CodeProperty); }
  334. set { SetValue(CodeProperty,value); }
  335. }
  336. public static readonly DependencyProperty CodeProperty =
  337. DependencyProperty.Register("Code",typeof(string),typeof(Silos),new PropertyMetadata(_code));
  338. [Category("数据绑定")]
  339. public string GenerateData
  340. {
  341. get { return (string)GetValue(GenerateDataProperty); }
  342. set { SetValue(GenerateDataProperty,value); }
  343. }
  344. public static readonly DependencyProperty GenerateDataProperty =
  345. DependencyProperty.Register("GenerateData",typeof(string),typeof(Silos),new PropertyMetadata(string.Empty));
  346. #endregion
  347. #region 发送事件名称集合
  348. [Category("事件处理")]
  349. public MessageNameEnum 出料单击事件
  350. {
  351. get { return (MessageNameEnum)GetValue(出料单击事件Property); }
  352. set { SetValue(出料单击事件Property,value); }
  353. }
  354. public static readonly DependencyProperty 出料单击事件Property =
  355. DependencyProperty.Register("出料单击事件",typeof(MessageNameEnum),typeof(Silos),new PropertyMetadata(MessageNameEnum.Null));
  356. [Category("事件处理")]
  357. public MessageNameEnum 停止出料单击事件
  358. {
  359. get { return (MessageNameEnum)GetValue(停止出料单击事件Property); }
  360. set { SetValue(停止出料单击事件Property,value); }
  361. }
  362. public static readonly DependencyProperty 停止出料单击事件Property =
  363. DependencyProperty.Register("停止出料单击事件",typeof(MessageNameEnum),typeof(Silos),new PropertyMetadata(MessageNameEnum.Null));
  364. #endregion
  365. #region 函数
  366. /// <summary>
  367. /// 目标属性刷新
  368. /// </summary>
  369. public void TargetRefresh()
  370. {
  371. if (textBlockValue != null && textBlockText != null && textBlockTitle != null)
  372. {
  373. textBlockValue.Text = KgValue;
  374. textBlockText.Text = WLText;
  375. textBlockTitle.Text = WLTitle;
  376. }
  377. }
  378. /// <summary>
  379. /// 值变化刷新
  380. /// </summary>
  381. public void Refresh()
  382. {
  383. if (ellipseControl != null)
  384. {
  385. if (Direction == 1)
  386. {
  387. ellipseControl.Visibility = Visibility.Visible;
  388. textBlockCLKZ.Visibility = Visibility.Visible;
  389. storyboard.Begin();
  390. }
  391. else if (Direction == 2)
  392. {
  393. ellipseControl.Visibility = Visibility.Collapsed;
  394. textBlockCLKZ.Visibility = Visibility.Collapsed;
  395. storyboard.Stop();
  396. }
  397. else
  398. {
  399. ellipseControl.Visibility = Visibility.Collapsed;
  400. textBlockCLKZ.Visibility = Visibility.Collapsed;
  401. storyboard.Stop();
  402. }
  403. }
  404. }
  405. /// <summary>
  406. /// 运行名称变化事件
  407. /// </summary>
  408. public void RunNameRefresh()
  409. {
  410. }
  411. /// <summary>
  412. /// 接收数据改变
  413. /// </summary>
  414. public void ReceiveNameRefresh()
  415. {
  416. }
  417. #endregion
  418. #region 运行事件
  419. DispatcherTimer timer = new DispatcherTimer();
  420. Dictionary<string, string> propertyBing = new Dictionary<string,string>();
  421. List<string> MessageNameL = null;
  422. public void Register()
  423. {
  424. if (!string.IsNullOrEmpty(EventReceiveNameListStr))
  425. {
  426. try
  427. {
  428. EventReceiveNameList = JsonConvert.DeserializeObject<ObservableCollection<EventReceiveMessage>>(EventReceiveNameListStr);
  429. }
  430. catch (Exception ex)
  431. {
  432. }
  433. }
  434. List<string> MessageNameNew = EventReceiveNameList?.Select(o => o.MeaageName.ToString())?.Distinct()?.ToList();
  435. if (MessageNameL == null || !MessageNameNew.SequenceEqual(MessageNameL))
  436. {
  437. MessageNameL?.ForEach(o => Class_InnerMessageBus.GetInstance().RemoveMessage(o,"SliosEventHandler"));
  438. MessageNameNew?.ForEach(x => Class_InnerMessageBus.GetInstance().ListenMessage(this,x,"SliosEventHandler"));
  439. MessageNameL = MessageNameNew;
  440. }
  441. PropertyInfo[] propertyInfos = this.GetType().GetProperties();
  442. foreach (PropertyInfo propertyInfo in propertyInfos)
  443. {
  444. var propName = propertyInfo?.GetValue(this,null);
  445. if (propName is string && propName != null && propName.ToString().Contains("Binding ") && propName.ToString().Contains("."))
  446. {
  447. propertyBing[propertyInfo.Name] = propName.ToString();
  448. }
  449. }
  450. if (propertyBing.Count > 0)
  451. {
  452. timer.Interval = TimeSpan.FromMilliseconds(TimeCount);
  453. timer.Tick += Timer_Tick; ;
  454. timer.Start();
  455. }
  456. }
  457. private void Timer_Tick(object? sender,EventArgs e)
  458. {
  459. try
  460. {
  461. foreach (var item in propertyBing)
  462. {
  463. //{Binding 测试设备.VAR_A_2}
  464. string[] str= item.Value.Replace("{Binding ","").Replace("}","").Split(".");
  465. if (str.Length > 1)
  466. {
  467. if (Class_DataBus.GetInstance().Dic_DeviceData.ContainsKey(str[0]))
  468. {
  469. Dictionary<string,DeviceDataModel> b= Class_DataBus.GetInstance().Dic_DeviceData[str[0]];
  470. if (b!=null && b.ContainsKey(str[1]))
  471. {
  472. object _value = b[str[1]].VarVaule;
  473. this.GetType().GetProperty(item.Key).SetValue(this,_value);
  474. }
  475. }
  476. }
  477. }
  478. }
  479. catch (Exception ex)
  480. {
  481. }
  482. }
  483. /// <summary>
  484. /// 统一事件消息处理中心
  485. /// </summary>
  486. /// <param name="sender"></param>
  487. /// <param name="e"></param>
  488. public void SliosEventHandler(object sender,InnerMessageEventArgs e)
  489. {
  490. try
  491. {
  492. if (IsExecuteState = true)//正在运行
  493. {
  494. if (e.obj_MessageObj is RunEnumModel)//接收到运行消息
  495. {
  496. RunEnumModel mode = (RunEnumModel)e.obj_MessageObj;
  497. var msg = EventReceiveNameList?.ToList().Find(par => par.MeaageName.ToString() == e.str_MessageStr && par.MeaageID == mode.MessageID);
  498. //必对消息号:
  499. if (msg != null)
  500. {
  501. Direction = mode.Run == RunEnum.Run ? 1 : 2;
  502. }
  503. }
  504. else if (e.obj_MessageObj is SilosMessageModel)//接收到数据模型
  505. {
  506. SilosMessageModel mode = (SilosMessageModel)e.obj_MessageObj;
  507. var msg = EventReceiveNameList?.ToList().Find(par => par.MeaageName.ToString() == e.str_MessageStr && par.MeaageID == mode.MessageID);
  508. //必对消息号:
  509. if (msg != null)
  510. {
  511. WLTitle = mode.Title;
  512. KgValue = mode.Value;
  513. WLText = mode.Text;
  514. }
  515. }
  516. }
  517. }
  518. catch (Exception ex)
  519. {
  520. }
  521. }
  522. #endregion
  523. #region 发送消息事件
  524. public void Dispose()
  525. {
  526. timer.Stop();
  527. }
  528. /// <summary>
  529. /// 按钮按下
  530. /// </summary>
  531. /// <param name="sender"></param>
  532. /// <param name="e"></param>
  533. private void Image_MouseLeftButtonDown(object sender,MouseButtonEventArgs e)
  534. {
  535. try
  536. {
  537. Image image = sender as Image;
  538. if (image.Tag != null)
  539. {
  540. if (image.Tag.ToString() == "出料" && 出料单击事件 != MessageNameEnum.Null)
  541. {
  542. EventSendMessage eventSend = new EventSendMessage();
  543. eventSend.ControlName = this.Name;
  544. eventSend.ControlTitle = this.WLTitle;
  545. eventSend.ControlSource = image.Tag.ToString();
  546. eventSend.EventType = ControlEventType.MouseLeftButtonDown;
  547. eventSend.MeaageName = 出料单击事件;
  548. Class_InnerMessageBus.GetInstance().PostMessage(this,出料单击事件.ToString(),eventSend);
  549. }
  550. else if (image.Tag.ToString() == "停止出料" && 停止出料单击事件 != MessageNameEnum.Null)
  551. {
  552. EventSendMessage eventSend = new EventSendMessage();
  553. eventSend.ControlName = this.Name;
  554. eventSend.ControlTitle = this.WLTitle;
  555. eventSend.ControlSource = image.Tag.ToString();
  556. eventSend.EventType = ControlEventType.MouseLeftButtonDown;
  557. eventSend.MeaageName = 停止出料单击事件;
  558. Class_InnerMessageBus.GetInstance().PostMessage(this,停止出料单击事件.ToString(),eventSend);
  559. }
  560. }
  561. }
  562. catch (Exception ex)
  563. {
  564. }
  565. }
  566. /// <summary>
  567. /// 按钮类型
  568. /// </summary>
  569. /// <param name="sender"></param>
  570. /// <param name="e"></param>
  571. private void Button_Click(object sender,RoutedEventArgs e)
  572. {
  573. }
  574. /// <summary>
  575. /// 值改变
  576. /// </summary>
  577. /// <param name="sender"></param>
  578. /// <param name="e"></param>
  579. private void TextBox_TextChanged(object sender,TextChangedEventArgs e)
  580. {
  581. }
  582. /// <summary>
  583. /// 选中
  584. /// </summary>
  585. /// <param name="sender"></param>
  586. /// <param name="e"></param>
  587. private void CheckBox_Checked(object sender,RoutedEventArgs e)
  588. {
  589. }
  590. /// <summary>
  591. /// 取消选中
  592. /// </summary>
  593. /// <param name="sender"></param>
  594. /// <param name="e"></param>
  595. private void CheckBox_Unchecked(object sender,RoutedEventArgs e)
  596. {
  597. }
  598. #endregion
  599. }
  600. }