ShowVisionRender.xaml.cs 72 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054
  1. using Cognex.VisionPro;
  2. using Cognex.VisionPro.ImageFile;
  3. using log4net.Core;
  4. using MahApps.Metro.Controls;
  5. using Prism.Events;
  6. using Prism.Ioc;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Drawing;
  10. using System.IO;
  11. using System.Threading.Tasks;
  12. using System.Windows;
  13. using System.Windows.Controls;
  14. using System.Windows.Forms.Integration;
  15. using System.Windows.Interop;
  16. using TeamAAS_VP;
  17. using TeamAAS_VP.Core;
  18. using TeamAAS_VP.Data;
  19. using TeamAAS_VP.Enums;
  20. using TeamAAS_VP.Events;
  21. using TeamAAS_VP.Interfaces;
  22. using TeamAAS_VP.Models;
  23. using TeamAAS_VP.Resources.Languages;
  24. using TeamAAS_VP.ViewModels;
  25. using TeamAAS_VP.ViewModels.Home;
  26. using static MaterialDesignThemes.Wpf.Theme.ToolBar;
  27. namespace TeamAAS_VP.Views.Home
  28. {
  29. /// <summary>
  30. /// Interaction logic for ShowVisionRender
  31. /// </summary>
  32. public partial class ShowVisionRender : UserControl
  33. {
  34. ShowVisionRenderViewModel viewModel;
  35. Dictionary<Guid, WindowsFormsHost> vmRenders;
  36. Dictionary<Guid, TextBlock> Titles;
  37. IEventAggregator _eventAggregator;
  38. ISystemDatabaseService _systemDatabaseService;
  39. public ShowVisionRender()
  40. {
  41. InitializeComponent();
  42. vmRenders = new Dictionary<Guid, WindowsFormsHost>();
  43. Titles = new Dictionary<Guid, TextBlock>();
  44. viewModel = DataContext as ShowVisionRenderViewModel;
  45. _eventAggregator = viewModel._eventAggregator;
  46. _systemDatabaseService= ((Prism.PrismApplicationBase)App.Current).Container.Resolve<ISystemDatabaseService>();
  47. viewModel.UpdateLayout += ViewModel_UpdateLayout;
  48. _eventAggregator.GetEvent<RenderUpdateNotification>().Subscribe(UpdateRenderModuleSource);
  49. _eventAggregator.GetEvent<ProductChangedNotification>().Subscribe(ProductChanged);
  50. }
  51. private void UpdateRenderModuleSource(ShowRender render)
  52. {
  53. //foreach (var item in vmRenders)
  54. //{
  55. // if (item.Key== render.Id)
  56. // {
  57. // App.Current.Dispatcher.Invoke(new Action(() =>
  58. // {
  59. // item.Value.ModuleSource = render.ModuleSource;
  60. // }));
  61. // break;
  62. // }
  63. //}
  64. this.gridRender.Dispatcher.BeginInvoke(new Action(() =>
  65. {
  66. foreach (var item in vmRenders)
  67. {
  68. if (((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Tag!=null && ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Tag.ToString() == render.CameraName)
  69. {
  70. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Record = null;
  71. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Image = render.Image;
  72. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).StaticGraphics.Clear();
  73. if (render.Graphic!=null)
  74. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).StaticGraphics.AddList(render.Graphic, "");
  75. if (render.Record != null)
  76. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Record = render.Record;
  77. if (render.IsSaveImage)
  78. {
  79. SaveImage(render.SaveImageModel, render.SaveImagePathModel, render.SavePath, render.Image, (Bitmap)((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).CreateContentBitmap(Cognex.VisionPro.Display.CogDisplayContentBitmapConstants.Custom), render.Result, render.IsCompress);
  80. }
  81. break;
  82. }
  83. }
  84. /*
  85. foreach (var item in gridRender.Children)
  86. {
  87. if (item is WindowsFormsHost && ((WindowsFormsHost)item).Child is Cognex.VisionPro.CogRecordDisplay)
  88. {
  89. if (((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Tag != null && ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Tag.ToString() == render.CameraName)
  90. {
  91. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Image = render.Image;
  92. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).StaticGraphics.Clear();
  93. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).StaticGraphics.AddList(render.Graphic, "");
  94. if (render.Record != null)
  95. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Record = render.Record;
  96. if (render.IsSaveImage)
  97. {
  98. SaveImage(render.SaveImageModel, render.SaveImagePathModel, render.SavePath, render.Image, (Bitmap)((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).CreateContentBitmap(Cognex.VisionPro.Display.CogDisplayContentBitmapConstants.Custom), render.Result, render.IsCompress);
  99. }
  100. break;
  101. }
  102. }
  103. else if (item is Grid)
  104. {
  105. foreach (var item1 in ((Grid)item).Children)
  106. {
  107. if (item1 is WindowsFormsHost && ((WindowsFormsHost)item1).Child is Cognex.VisionPro.CogRecordDisplay)
  108. {
  109. if (((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).Tag != null && ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).Tag.ToString() == render.CameraName)
  110. {
  111. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).Image = render.Image;
  112. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).StaticGraphics.Clear();
  113. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).StaticGraphics.AddList(render.Graphic, "");
  114. if (render.Record != null)
  115. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Record = render.Record;
  116. if (render.IsSaveImage)
  117. {
  118. SaveImage(render.SaveImageModel, render.SaveImagePathModel, render.SavePath, render.Image, (Bitmap)((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).CreateContentBitmap(Cognex.VisionPro.Display.CogDisplayContentBitmapConstants.Custom), render.Result, render.IsCompress);
  119. }
  120. break;
  121. }
  122. }
  123. }
  124. break;
  125. }
  126. }*/
  127. }));
  128. }
  129. Grid grid1 = new Grid();
  130. Grid grid2 = new Grid();
  131. Grid grid3 = new Grid();
  132. Grid grid4 = new Grid();
  133. Grid grid5 = new Grid();
  134. Grid grid6 = new Grid();
  135. Grid grid7 = new Grid();
  136. Grid grid8 = new Grid();
  137. private void ViewModel_UpdateLayout(System.Collections.ObjectModel.ObservableCollection<Models.ShowRender> obj)
  138. {
  139. System.Windows.Media.FontFamily font = Application.Current.Resources["DefaultFont"] as System.Windows.Media.FontFamily;
  140. if (vmRenders.Count > 0)
  141. {
  142. foreach (var render in vmRenders)
  143. {
  144. render.Value.Dispose();
  145. }
  146. }
  147. vmRenders.Clear();
  148. gridRender.Children.Clear();
  149. Titles.Clear();
  150. if (obj == null) { return; }
  151. if (obj.Count == 0) { return; }
  152. Grid grid = new Grid();
  153. gridRender.RowDefinitions.Clear();
  154. gridRender.ColumnDefinitions.Clear();
  155. System.Windows.Thickness margin = new System.Windows.Thickness(2);
  156. switch (obj.Count)
  157. {
  158. case 1:
  159. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
  160. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12 , Foreground = System.Windows.Media.Brushes.Black });
  161. gridRender.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  162. gridRender.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  163. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  164. gridRender.ShowGridLines = false;
  165. gridRender.Children.Add(vmRenders[obj[0].Id]);
  166. gridRender.Children.Add(Titles[obj[0].Id]);
  167. Grid.SetRow(vmRenders[obj[0].Id], 1);
  168. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  169. Grid.SetRowSpan(vmRenders[obj[0].Id], 1);
  170. Grid.SetColumnSpan(vmRenders[obj[0].Id], 1);
  171. Grid.SetRow(Titles[obj[0].Id], 0);
  172. Grid.SetColumn(Titles[obj[0].Id], 0);
  173. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[0].Id]).Child).HorizontalScrollBar = false;
  174. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[0].Id]).Child).VerticalScrollBar = false;
  175. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[0].Id]).Child).AutoFit = true;
  176. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[0].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  177. break;
  178. case 2:
  179. //增加显示界面
  180. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
  181. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
  182. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12,Foreground = System.Windows.Media.Brushes.Black });
  183. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  184. //布局
  185. gridRender.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  186. gridRender.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  187. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  188. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  189. gridRender.ShowGridLines = true;
  190. gridRender.Children.Add(vmRenders[obj[0].Id]);
  191. gridRender.Children.Add(vmRenders[obj[1].Id]);
  192. gridRender.Children.Add(Titles[obj[0].Id]);
  193. gridRender.Children.Add(Titles[obj[1].Id]);
  194. Grid.SetRow(vmRenders[obj[0].Id], 1);
  195. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  196. Grid.SetRow(vmRenders[obj[1].Id], 1);
  197. Grid.SetColumn(vmRenders[obj[1].Id], 1);
  198. Grid.SetRowSpan(vmRenders[obj[0].Id], 1);
  199. Grid.SetColumnSpan(vmRenders[obj[0].Id], 1);
  200. Grid.SetRow(Titles[obj[0].Id], 0);
  201. Grid.SetColumn(Titles[obj[0].Id], 0);
  202. Grid.SetRow(Titles[obj[1].Id], 0);
  203. Grid.SetColumn(Titles[obj[1].Id], 1);
  204. for (int i = 0; i < 2; i++)
  205. {
  206. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  207. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  208. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  209. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  210. }
  211. break;
  212. case 3:
  213. //增加显示界面
  214. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
  215. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
  216. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].CameraName } });
  217. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  218. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12,Foreground = System.Windows.Media.Brushes.Black });
  219. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  220. //布局
  221. gridRender.RowDefinitions.Add(new RowDefinition());
  222. gridRender.RowDefinitions.Add(new RowDefinition());
  223. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  224. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  225. gridRender.ShowGridLines = true;
  226. grid1 = new Grid();
  227. grid2 = new Grid();
  228. grid3 = new Grid();
  229. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  230. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  231. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  232. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  233. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  234. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  235. gridRender.Children.Add(grid1);
  236. gridRender.Children.Add(grid2);
  237. gridRender.Children.Add(grid3);
  238. Grid.SetRow(grid1, 0);
  239. Grid.SetColumn(grid1, 0);
  240. Grid.SetRow(grid2, 0);
  241. Grid.SetColumn(grid2, 1);
  242. Grid.SetRow(grid3, 1);
  243. Grid.SetColumn(grid3, 0);
  244. Grid.SetColumnSpan(grid3, 2);
  245. grid1.Children.Add(vmRenders[obj[0].Id]);
  246. grid2.Children.Add(vmRenders[obj[1].Id]);
  247. grid3.Children.Add(vmRenders[obj[2].Id]);
  248. grid1.Children.Add(Titles[obj[0].Id]);
  249. grid2.Children.Add(Titles[obj[1].Id]);
  250. grid3.Children.Add(Titles[obj[2].Id]);
  251. Grid.SetRow(vmRenders[obj[0].Id], 1);
  252. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  253. Grid.SetRow(vmRenders[obj[1].Id], 1);
  254. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  255. Grid.SetRow(vmRenders[obj[2].Id], 1);
  256. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  257. Grid.SetRow(Titles[obj[0].Id], 0);
  258. Grid.SetColumn(Titles[obj[0].Id], 0);
  259. Grid.SetRow(Titles[obj[1].Id], 0);
  260. Grid.SetColumn(Titles[obj[1].Id], 0);
  261. Grid.SetRow(Titles[obj[2].Id], 0);
  262. Grid.SetColumn(Titles[obj[2].Id], 0);
  263. for (int i = 0; i < 3; i++)
  264. {
  265. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  266. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  267. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  268. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  269. }
  270. break;
  271. case 4:
  272. //增加显示界面
  273. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
  274. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
  275. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].CameraName } });
  276. vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].CameraName } });
  277. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  278. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  279. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  280. Titles.Add(obj[3].Id, new TextBlock() { Text = obj[3].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  281. //布局
  282. gridRender.RowDefinitions.Add(new RowDefinition());
  283. gridRender.RowDefinitions.Add(new RowDefinition());
  284. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  285. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  286. gridRender.ShowGridLines = true;
  287. grid1 = new Grid();
  288. grid2 = new Grid();
  289. grid3 = new Grid();
  290. grid4 = new Grid();
  291. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  292. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  293. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  294. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  295. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  296. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  297. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  298. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  299. gridRender.Children.Add(grid1);
  300. gridRender.Children.Add(grid2);
  301. gridRender.Children.Add(grid3);
  302. gridRender.Children.Add(grid4);
  303. Grid.SetRow(grid1, 0);
  304. Grid.SetColumn(grid1, 0);
  305. Grid.SetRow(grid2, 0);
  306. Grid.SetColumn(grid2, 1);
  307. Grid.SetRow(grid3, 1);
  308. Grid.SetColumn(grid3, 0);
  309. Grid.SetRow(grid4, 1);
  310. Grid.SetColumn(grid4, 1);
  311. grid1.Children.Add(vmRenders[obj[0].Id]);
  312. grid2.Children.Add(vmRenders[obj[1].Id]);
  313. grid3.Children.Add(vmRenders[obj[2].Id]);
  314. grid4.Children.Add(vmRenders[obj[3].Id]);
  315. grid1.Children.Add(Titles[obj[0].Id]);
  316. grid2.Children.Add(Titles[obj[1].Id]);
  317. grid3.Children.Add(Titles[obj[2].Id]);
  318. grid4.Children.Add(Titles[obj[3].Id]);
  319. Grid.SetRow(vmRenders[obj[0].Id], 1);
  320. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  321. Grid.SetRow(vmRenders[obj[1].Id], 1);
  322. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  323. Grid.SetRow(vmRenders[obj[2].Id], 1);
  324. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  325. Grid.SetRow(vmRenders[obj[3].Id], 1);
  326. Grid.SetColumn(vmRenders[obj[3].Id], 0);
  327. //Grid.SetRowSpan(vmRenders[obj[2].Id], 1);
  328. //Grid.SetColumnSpan(vmRenders[obj[2].Id], 0);
  329. Grid.SetRow(Titles[obj[0].Id], 0);
  330. Grid.SetColumn(Titles[obj[0].Id], 0);
  331. Grid.SetRow(Titles[obj[1].Id], 0);
  332. Grid.SetColumn(Titles[obj[1].Id], 0);
  333. Grid.SetRow(Titles[obj[2].Id], 0);
  334. Grid.SetColumn(Titles[obj[2].Id], 0);
  335. Grid.SetRow(Titles[obj[3].Id], 0);
  336. Grid.SetColumn(Titles[obj[3].Id], 0);
  337. for (int i = 0; i < 4; i++)
  338. {
  339. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  340. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  341. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  342. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  343. }
  344. break;
  345. case 5:
  346. //增加显示界面
  347. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
  348. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
  349. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].CameraName } });
  350. vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].CameraName } });
  351. vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].CameraName } });
  352. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12 ,Foreground= System.Windows.Media.Brushes.Black});
  353. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  354. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  355. Titles.Add(obj[3].Id, new TextBlock() { Text = obj[3].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  356. Titles.Add(obj[4].Id, new TextBlock() { Text = obj[4].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  357. //布局
  358. gridRender.RowDefinitions.Add(new RowDefinition());
  359. gridRender.RowDefinitions.Add(new RowDefinition());
  360. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  361. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  362. gridRender.ShowGridLines = true;
  363. grid1 = new Grid() { Background= System.Windows.Media.Brushes.White };
  364. grid2 = new Grid() { Background = System.Windows.Media.Brushes.White };
  365. grid3 = new Grid() { Background = System.Windows.Media.Brushes.White };
  366. grid4 = new Grid() { Background = System.Windows.Media.Brushes.White };
  367. grid5 = new Grid() { Background = System.Windows.Media.Brushes.White };
  368. grid6 = new Grid() { Background = System.Windows.Media.Brushes.White };
  369. grid6.ShowGridLines = true;
  370. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  371. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  372. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  373. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  374. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  375. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  376. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  377. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  378. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  379. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  380. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  381. grid6.ColumnDefinitions.Add(new ColumnDefinition());
  382. grid6.ColumnDefinitions.Add(new ColumnDefinition());
  383. grid6.ColumnDefinitions.Add(new ColumnDefinition());
  384. gridRender.Children.Add(grid1);
  385. gridRender.Children.Add(grid2);
  386. gridRender.Children.Add(grid6);
  387. grid6.Children.Add(grid3);
  388. grid6.Children.Add(grid4);
  389. grid6.Children.Add(grid5);
  390. grid1.Children.Add(vmRenders[obj[0].Id]);
  391. grid2.Children.Add(vmRenders[obj[1].Id]);
  392. grid3.Children.Add(vmRenders[obj[2].Id]);
  393. grid4.Children.Add(vmRenders[obj[3].Id]);
  394. grid5.Children.Add(vmRenders[obj[4].Id]);
  395. grid1.Children.Add(Titles[obj[0].Id]);
  396. grid2.Children.Add(Titles[obj[1].Id]);
  397. grid3.Children.Add(Titles[obj[2].Id]);
  398. grid4.Children.Add(Titles[obj[3].Id]);
  399. grid5.Children.Add(Titles[obj[4].Id]);
  400. Grid.SetRow(grid6, 1);
  401. Grid.SetColumn(grid6, 0);
  402. Grid.SetColumnSpan(grid6, 2);
  403. Grid.SetRow(grid1, 0);
  404. Grid.SetColumn(grid1, 0);
  405. Grid.SetRow(grid2, 0);
  406. Grid.SetColumn(grid2, 1);
  407. Grid.SetRow(grid3, 0);
  408. Grid.SetColumn(grid3, 0);
  409. Grid.SetRow(grid4, 0);
  410. Grid.SetColumn(grid4, 1);
  411. Grid.SetRow(grid5, 0);
  412. Grid.SetColumn(grid5, 2);
  413. Grid.SetRow(Titles[obj[0].Id], 0);
  414. Grid.SetColumn(Titles[obj[0].Id], 0);
  415. Grid.SetRow(Titles[obj[1].Id], 0);
  416. Grid.SetColumn(Titles[obj[1].Id], 0);
  417. Grid.SetRow(Titles[obj[2].Id], 0);
  418. Grid.SetColumn(Titles[obj[2].Id], 0);
  419. Grid.SetRow(Titles[obj[3].Id], 0);
  420. Grid.SetColumn(Titles[obj[3].Id], 0);
  421. Grid.SetRow(Titles[obj[4].Id], 0);
  422. Grid.SetColumn(Titles[obj[4].Id], 0);
  423. Grid.SetRow(vmRenders[obj[0].Id], 1);
  424. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  425. Grid.SetRow(vmRenders[obj[1].Id], 1);
  426. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  427. Grid.SetRow(vmRenders[obj[2].Id], 1);
  428. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  429. Grid.SetRow(vmRenders[obj[3].Id], 1);
  430. Grid.SetColumn(vmRenders[obj[3].Id], 0);
  431. Grid.SetRow(vmRenders[obj[4].Id], 1);
  432. Grid.SetColumn(vmRenders[obj[4].Id], 0);
  433. for (int i = 0; i < 5; i++)
  434. {
  435. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  436. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  437. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  438. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  439. }
  440. break;
  441. case 6:
  442. //增加显示界面
  443. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
  444. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
  445. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].CameraName } });
  446. vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].CameraName } });
  447. vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].CameraName } });
  448. vmRenders.Add(obj[5].Id, new WindowsFormsHost() { Tag = obj[5].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[5].CameraName } });
  449. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  450. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  451. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  452. Titles.Add(obj[3].Id, new TextBlock() { Text = obj[3].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  453. Titles.Add(obj[4].Id, new TextBlock() { Text = obj[4].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  454. Titles.Add(obj[5].Id, new TextBlock() { Text = obj[5].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  455. //布局
  456. gridRender.RowDefinitions.Add(new RowDefinition());
  457. gridRender.RowDefinitions.Add(new RowDefinition());
  458. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  459. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  460. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  461. gridRender.ShowGridLines = true;
  462. grid1 = new Grid();
  463. grid2 = new Grid();
  464. grid3 = new Grid();
  465. grid4 = new Grid();
  466. grid5 = new Grid();
  467. grid6 = new Grid();
  468. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  469. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  470. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  471. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  472. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  473. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  474. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  475. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  476. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  477. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  478. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  479. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  480. gridRender.Children.Add(grid1);
  481. gridRender.Children.Add(grid2);
  482. gridRender.Children.Add(grid3);
  483. gridRender.Children.Add(grid4);
  484. gridRender.Children.Add(grid5);
  485. gridRender.Children.Add(grid6);
  486. Grid.SetRow(grid1, 0);
  487. Grid.SetColumn(grid1, 0);
  488. Grid.SetRow(grid2, 0);
  489. Grid.SetColumn(grid2, 1);
  490. Grid.SetRow(grid3, 0);
  491. Grid.SetColumn(grid3, 2);
  492. Grid.SetRow(grid4, 1);
  493. Grid.SetColumn(grid4, 0);
  494. Grid.SetRow(grid5, 1);
  495. Grid.SetColumn(grid5, 1);
  496. Grid.SetRow(grid6, 1);
  497. Grid.SetColumn(grid6, 2);
  498. grid1.Children.Add(vmRenders[obj[0].Id]);
  499. grid2.Children.Add(vmRenders[obj[1].Id]);
  500. grid3.Children.Add(vmRenders[obj[2].Id]);
  501. grid4.Children.Add(vmRenders[obj[3].Id]);
  502. grid5.Children.Add(vmRenders[obj[4].Id]);
  503. grid6.Children.Add(vmRenders[obj[5].Id]);
  504. grid1.Children.Add(Titles[obj[0].Id]);
  505. grid2.Children.Add(Titles[obj[1].Id]);
  506. grid3.Children.Add(Titles[obj[2].Id]);
  507. grid4.Children.Add(Titles[obj[3].Id]);
  508. grid5.Children.Add(Titles[obj[4].Id]);
  509. grid6.Children.Add(Titles[obj[5].Id]);
  510. Grid.SetRow(Titles[obj[0].Id], 0);
  511. Grid.SetColumn(Titles[obj[0].Id], 0);
  512. Grid.SetRow(Titles[obj[1].Id], 0);
  513. Grid.SetColumn(Titles[obj[1].Id], 0);
  514. Grid.SetRow(Titles[obj[2].Id], 0);
  515. Grid.SetColumn(Titles[obj[2].Id], 0);
  516. Grid.SetRow(Titles[obj[3].Id], 0);
  517. Grid.SetColumn(Titles[obj[3].Id], 0);
  518. Grid.SetRow(Titles[obj[4].Id], 0);
  519. Grid.SetColumn(Titles[obj[4].Id], 0);
  520. Grid.SetRow(Titles[obj[5].Id], 0);
  521. Grid.SetColumn(Titles[obj[5].Id], 0);
  522. Grid.SetRow(vmRenders[obj[0].Id], 1);
  523. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  524. Grid.SetRow(vmRenders[obj[1].Id], 1);
  525. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  526. Grid.SetRow(vmRenders[obj[2].Id], 1);
  527. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  528. Grid.SetRow(vmRenders[obj[3].Id], 1);
  529. Grid.SetColumn(vmRenders[obj[3].Id], 0);
  530. Grid.SetRow(vmRenders[obj[4].Id], 1);
  531. Grid.SetColumn(vmRenders[obj[4].Id], 0);
  532. Grid.SetRow(vmRenders[obj[5].Id], 1);
  533. Grid.SetColumn(vmRenders[obj[5].Id], 0);
  534. for (int i = 0; i < 6; i++)
  535. {
  536. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  537. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  538. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  539. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  540. }
  541. break;
  542. case 7:
  543. //增加显示界面
  544. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
  545. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
  546. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].CameraName } });
  547. vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].CameraName } });
  548. vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].CameraName } });
  549. vmRenders.Add(obj[5].Id, new WindowsFormsHost() { Tag = obj[5].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[5].CameraName } });
  550. vmRenders.Add(obj[6].Id, new WindowsFormsHost() { Tag = obj[6].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[6].CameraName } });
  551. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  552. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  553. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  554. Titles.Add(obj[3].Id, new TextBlock() { Text = obj[3].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  555. Titles.Add(obj[4].Id, new TextBlock() { Text = obj[4].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  556. Titles.Add(obj[5].Id, new TextBlock() { Text = obj[5].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  557. Titles.Add(obj[6].Id, new TextBlock() { Text = obj[6].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  558. //布局
  559. gridRender.RowDefinitions.Add(new RowDefinition());
  560. gridRender.RowDefinitions.Add(new RowDefinition());
  561. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  562. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  563. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  564. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  565. gridRender.ShowGridLines = true;
  566. grid1 = new Grid();
  567. grid2 = new Grid();
  568. grid3 = new Grid();
  569. grid4 = new Grid();
  570. grid5 = new Grid();
  571. grid6 = new Grid();
  572. grid7 = new Grid();
  573. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  574. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  575. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  576. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  577. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  578. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  579. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  580. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  581. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  582. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  583. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  584. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  585. grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  586. grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  587. gridRender.Children.Add(grid1);
  588. gridRender.Children.Add(grid2);
  589. gridRender.Children.Add(grid3);
  590. gridRender.Children.Add(grid4);
  591. gridRender.Children.Add(grid5);
  592. gridRender.Children.Add(grid6);
  593. gridRender.Children.Add(grid7);
  594. Grid.SetRow(grid1, 0);
  595. Grid.SetColumn(grid1, 0);
  596. Grid.SetRow(grid2, 0);
  597. Grid.SetColumn(grid2, 1);
  598. Grid.SetRow(grid3, 0);
  599. Grid.SetColumn(grid3, 2);
  600. Grid.SetRow(grid4, 0);
  601. Grid.SetColumn(grid4, 3);
  602. Grid.SetRow(grid5, 1);
  603. Grid.SetColumn(grid5, 0);
  604. Grid.SetRow(grid6, 1);
  605. Grid.SetColumn(grid6, 1);
  606. Grid.SetRow(grid7, 1);
  607. Grid.SetColumn(grid7, 2);
  608. grid1.Children.Add(vmRenders[obj[0].Id]);
  609. grid2.Children.Add(vmRenders[obj[1].Id]);
  610. grid3.Children.Add(vmRenders[obj[2].Id]);
  611. grid4.Children.Add(vmRenders[obj[3].Id]);
  612. grid5.Children.Add(vmRenders[obj[4].Id]);
  613. grid6.Children.Add(vmRenders[obj[5].Id]);
  614. grid7.Children.Add(vmRenders[obj[6].Id]);
  615. grid1.Children.Add(Titles[obj[0].Id]);
  616. grid2.Children.Add(Titles[obj[1].Id]);
  617. grid3.Children.Add(Titles[obj[2].Id]);
  618. grid4.Children.Add(Titles[obj[3].Id]);
  619. grid5.Children.Add(Titles[obj[4].Id]);
  620. grid6.Children.Add(Titles[obj[5].Id]);
  621. grid7.Children.Add(Titles[obj[6].Id]);
  622. Grid.SetRow(Titles[obj[0].Id], 0);
  623. Grid.SetColumn(Titles[obj[0].Id], 0);
  624. Grid.SetRow(Titles[obj[1].Id], 0);
  625. Grid.SetColumn(Titles[obj[1].Id], 0);
  626. Grid.SetRow(Titles[obj[2].Id], 0);
  627. Grid.SetColumn(Titles[obj[2].Id], 0);
  628. Grid.SetRow(Titles[obj[3].Id], 0);
  629. Grid.SetColumn(Titles[obj[3].Id], 0);
  630. Grid.SetRow(Titles[obj[4].Id], 0);
  631. Grid.SetColumn(Titles[obj[4].Id], 0);
  632. Grid.SetRow(Titles[obj[5].Id], 0);
  633. Grid.SetColumn(Titles[obj[5].Id], 0);
  634. Grid.SetRow(Titles[obj[6].Id], 0);
  635. Grid.SetColumn(Titles[obj[6].Id], 0);
  636. Grid.SetRow(vmRenders[obj[0].Id], 1);
  637. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  638. Grid.SetRow(vmRenders[obj[1].Id], 1);
  639. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  640. Grid.SetRow(vmRenders[obj[2].Id], 1);
  641. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  642. Grid.SetRow(vmRenders[obj[3].Id], 1);
  643. Grid.SetColumn(vmRenders[obj[3].Id], 0);
  644. Grid.SetRow(vmRenders[obj[4].Id], 1);
  645. Grid.SetColumn(vmRenders[obj[4].Id], 0);
  646. Grid.SetRow(vmRenders[obj[5].Id], 1);
  647. Grid.SetColumn(vmRenders[obj[5].Id], 0);
  648. Grid.SetRow(vmRenders[obj[6].Id], 1);
  649. Grid.SetColumn(vmRenders[obj[6].Id], 0);
  650. for (int i = 0; i < 7; i++)
  651. {
  652. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  653. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  654. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  655. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  656. }
  657. break;
  658. case 8:
  659. //增加显示界面
  660. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
  661. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
  662. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].CameraName } });
  663. vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].CameraName } });
  664. vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].CameraName } });
  665. vmRenders.Add(obj[5].Id, new WindowsFormsHost() { Tag = obj[5].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[5].CameraName } });
  666. vmRenders.Add(obj[6].Id, new WindowsFormsHost() { Tag = obj[6].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[6].CameraName } });
  667. vmRenders.Add(obj[7].Id, new WindowsFormsHost() { Tag = obj[6].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[7].CameraName } });
  668. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  669. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  670. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  671. Titles.Add(obj[3].Id, new TextBlock() { Text = obj[3].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  672. Titles.Add(obj[4].Id, new TextBlock() { Text = obj[4].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  673. Titles.Add(obj[5].Id, new TextBlock() { Text = obj[5].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  674. Titles.Add(obj[6].Id, new TextBlock() { Text = obj[6].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  675. Titles.Add(obj[7].Id, new TextBlock() { Text = obj[7].CameraName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  676. //布局
  677. gridRender.RowDefinitions.Add(new RowDefinition());
  678. gridRender.RowDefinitions.Add(new RowDefinition());
  679. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  680. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  681. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  682. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  683. gridRender.ShowGridLines = true;
  684. grid1 = new Grid();
  685. grid2 = new Grid();
  686. grid3 = new Grid();
  687. grid4 = new Grid();
  688. grid5 = new Grid();
  689. grid6 = new Grid();
  690. grid7 = new Grid();
  691. grid8 = new Grid();
  692. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  693. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  694. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  695. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  696. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  697. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  698. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  699. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  700. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  701. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  702. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  703. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  704. grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  705. grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  706. grid8.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  707. grid8.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  708. gridRender.Children.Add(grid1);
  709. gridRender.Children.Add(grid2);
  710. gridRender.Children.Add(grid3);
  711. gridRender.Children.Add(grid4);
  712. gridRender.Children.Add(grid5);
  713. gridRender.Children.Add(grid6);
  714. gridRender.Children.Add(grid7);
  715. gridRender.Children.Add(grid8);
  716. Grid.SetRow(grid1, 0);
  717. Grid.SetColumn(grid1, 0);
  718. Grid.SetRow(grid2, 0);
  719. Grid.SetColumn(grid2, 1);
  720. Grid.SetRow(grid3, 0);
  721. Grid.SetColumn(grid3, 2);
  722. Grid.SetRow(grid4, 0);
  723. Grid.SetColumn(grid4, 3);
  724. Grid.SetRow(grid5, 1);
  725. Grid.SetColumn(grid5, 0);
  726. Grid.SetRow(grid6, 1);
  727. Grid.SetColumn(grid6, 1);
  728. Grid.SetRow(grid7, 1);
  729. Grid.SetColumn(grid7, 2);
  730. Grid.SetRow(grid8, 1);
  731. Grid.SetColumn(grid8, 3);
  732. grid1.Children.Add(vmRenders[obj[0].Id]);
  733. grid2.Children.Add(vmRenders[obj[1].Id]);
  734. grid3.Children.Add(vmRenders[obj[2].Id]);
  735. grid4.Children.Add(vmRenders[obj[3].Id]);
  736. grid5.Children.Add(vmRenders[obj[4].Id]);
  737. grid6.Children.Add(vmRenders[obj[5].Id]);
  738. grid7.Children.Add(vmRenders[obj[6].Id]);
  739. grid8.Children.Add(vmRenders[obj[7].Id]);
  740. grid1.Children.Add(Titles[obj[0].Id]);
  741. grid2.Children.Add(Titles[obj[1].Id]);
  742. grid3.Children.Add(Titles[obj[2].Id]);
  743. grid4.Children.Add(Titles[obj[3].Id]);
  744. grid5.Children.Add(Titles[obj[4].Id]);
  745. grid6.Children.Add(Titles[obj[5].Id]);
  746. grid7.Children.Add(Titles[obj[6].Id]);
  747. grid8.Children.Add(Titles[obj[7].Id]);
  748. Grid.SetRow(Titles[obj[0].Id], 0);
  749. Grid.SetColumn(Titles[obj[0].Id], 0);
  750. Grid.SetRow(Titles[obj[1].Id], 0);
  751. Grid.SetColumn(Titles[obj[1].Id], 0);
  752. Grid.SetRow(Titles[obj[2].Id], 0);
  753. Grid.SetColumn(Titles[obj[2].Id], 0);
  754. Grid.SetRow(Titles[obj[3].Id], 0);
  755. Grid.SetColumn(Titles[obj[3].Id], 0);
  756. Grid.SetRow(Titles[obj[4].Id], 0);
  757. Grid.SetColumn(Titles[obj[4].Id], 0);
  758. Grid.SetRow(Titles[obj[5].Id], 0);
  759. Grid.SetColumn(Titles[obj[5].Id], 0);
  760. Grid.SetRow(Titles[obj[6].Id], 0);
  761. Grid.SetColumn(Titles[obj[6].Id], 0);
  762. Grid.SetRow(Titles[obj[7].Id], 0);
  763. Grid.SetColumn(Titles[obj[7].Id], 0);
  764. Grid.SetRow(vmRenders[obj[0].Id], 1);
  765. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  766. Grid.SetRow(vmRenders[obj[1].Id], 1);
  767. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  768. Grid.SetRow(vmRenders[obj[2].Id], 1);
  769. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  770. Grid.SetRow(vmRenders[obj[3].Id], 1);
  771. Grid.SetColumn(vmRenders[obj[3].Id], 0);
  772. Grid.SetRow(vmRenders[obj[4].Id], 1);
  773. Grid.SetColumn(vmRenders[obj[4].Id], 0);
  774. Grid.SetRow(vmRenders[obj[5].Id], 1);
  775. Grid.SetColumn(vmRenders[obj[5].Id], 0);
  776. Grid.SetRow(vmRenders[obj[6].Id], 1);
  777. Grid.SetColumn(vmRenders[obj[6].Id], 0);
  778. Grid.SetRow(vmRenders[obj[7].Id], 1);
  779. Grid.SetColumn(vmRenders[obj[7].Id], 0);
  780. for (int i = 0; i < 8; i++)
  781. {
  782. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  783. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  784. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  785. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  786. }
  787. break;
  788. default:
  789. break;
  790. }
  791. }
  792. /// <summary>
  793. /// 保存图像
  794. /// </summary>
  795. /// <param name="saveImageModel">要保存图像的模式</param>
  796. /// <param name="saveImagePathModel">图像保存路径类型</param>
  797. /// <param name="path">保存图像的文件夹路径</param>
  798. /// <param name="image">原图像</param>
  799. /// <param name="reimage">渲染图像</param>
  800. /// <param name="result">拍照结果</param>
  801. /// <param name="isCompress">是否压缩</param>
  802. private void SaveImage(ProcedureSaveImageModel saveImageModel, ProcedureSaveImagePathModel saveImagePathModel, string path, ICogImage image, Bitmap reimage, bool result, bool isCompress)
  803. {
  804. if (string.IsNullOrEmpty(path) || string.IsNullOrWhiteSpace(path) || !Path.IsPathRooted(path))
  805. {
  806. _eventAggregator.GetEvent<TaskMessageNotification>().Publish(new Models.MessageStruct() { Message = "保存图像路径为无效的路径!", level = MessageLevel.Alarm });
  807. return;
  808. }
  809. Task.Run(() =>
  810. {
  811. try
  812. {
  813. DateTime now = DateTime.Now;
  814. if (saveImageModel == ProcedureSaveImageModel.Original)
  815. {
  816. string Originalpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  817. if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_OkNG_Time)
  818. {
  819. if (result)
  820. {
  821. Originalpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  822. }
  823. else
  824. {
  825. Originalpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  826. }
  827. }
  828. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ok_Time)
  829. {
  830. if (result)
  831. {
  832. Originalpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  833. }
  834. else
  835. {
  836. return;
  837. }
  838. }
  839. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ng_Time)
  840. {
  841. if (!result)
  842. {
  843. Originalpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  844. }
  845. else
  846. {
  847. return;
  848. }
  849. }
  850. if (!Directory.Exists(Path.GetDirectoryName(Originalpath))) //判断文件夹是否存在
  851. {
  852. Directory.CreateDirectory(Path.GetDirectoryName(Originalpath)); //创建文件夹
  853. }
  854. using (CogImageFileBMP _cogImageFileTool = new CogImageFileBMP())
  855. {
  856. _cogImageFileTool.Open(Originalpath, CogImageFileModeConstants.Write);
  857. _cogImageFileTool.Append(image);
  858. _cogImageFileTool.Close();
  859. }
  860. }
  861. else if (saveImageModel == ProcedureSaveImageModel.Recorded)
  862. {
  863. string Recordedpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  864. if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_OkNG_Time)
  865. {
  866. if (result)
  867. {
  868. Recordedpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  869. }
  870. else
  871. {
  872. Recordedpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  873. }
  874. }
  875. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ok_Time)
  876. {
  877. if (result)
  878. {
  879. Recordedpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  880. }
  881. else
  882. {
  883. return;
  884. }
  885. }
  886. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ng_Time)
  887. {
  888. if (!result)
  889. {
  890. Recordedpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  891. }
  892. else
  893. {
  894. return;
  895. }
  896. }
  897. if (!Directory.Exists(Path.GetDirectoryName(Recordedpath))) //判断文件夹是否存在
  898. {
  899. Directory.CreateDirectory(Path.GetDirectoryName(Recordedpath)); //创建文件夹
  900. }
  901. if (isCompress)
  902. {
  903. ImageHelper.CompressImage(reimage, Recordedpath, 100);
  904. }
  905. else
  906. {
  907. reimage.Save(Recordedpath);
  908. reimage.Dispose();
  909. }
  910. }
  911. else if (saveImageModel == ProcedureSaveImageModel.OriginalAndRecorded)
  912. {
  913. string Originalpath = $"{path}\\Original\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  914. string Recordedpath = $"{path}\\Recored\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  915. if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_OkNG_Time)
  916. {
  917. if (result)
  918. {
  919. Originalpath = $"{path}\\Original\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  920. Recordedpath = $"{path}\\Recored\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  921. }
  922. else
  923. {
  924. Originalpath = $"{path}\\Original\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  925. Recordedpath = $"{path}\\Recored\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  926. }
  927. }
  928. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ok_Time)
  929. {
  930. if (result)
  931. {
  932. Originalpath = $"{path}\\Original\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  933. Recordedpath = $"{path}\\Recored\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  934. }
  935. else
  936. {
  937. return;
  938. }
  939. }
  940. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ng_Time)
  941. {
  942. if (!result)
  943. {
  944. Originalpath = $"{path}\\Original\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  945. Recordedpath = $"{path}\\Recored\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
  946. }
  947. else
  948. {
  949. return;
  950. }
  951. }
  952. if (!Directory.Exists(Path.GetDirectoryName(Originalpath))) //判断文件夹是否存在
  953. {
  954. Directory.CreateDirectory(Path.GetDirectoryName(Originalpath)); //创建文件夹
  955. }
  956. using (CogImageFileBMP _cogImageFileTool = new CogImageFileBMP())
  957. {
  958. _cogImageFileTool.Open(Originalpath, CogImageFileModeConstants.Write);
  959. _cogImageFileTool.Append(image);
  960. _cogImageFileTool.Close();
  961. }
  962. if (!Directory.Exists(Path.GetDirectoryName(Recordedpath))) //判断文件夹是否存在
  963. {
  964. Directory.CreateDirectory(Path.GetDirectoryName(Recordedpath)); //创建文件夹
  965. }
  966. if (isCompress)
  967. {
  968. ImageHelper.CompressImage(reimage, Recordedpath, 100);
  969. }
  970. else
  971. {
  972. reimage.Save(Recordedpath);
  973. reimage.Dispose();
  974. }
  975. }
  976. }
  977. catch (Exception ex)
  978. {
  979. LogHelper.WriteLogError("保存流程运行结果的图片时出错!", ex);
  980. }
  981. });
  982. }
  983. private void ProductChanged(ProductModel product)
  984. {
  985. this.gridRender.Dispatcher.BeginInvoke(new Action(() =>
  986. {
  987. foreach (var item in vmRenders)
  988. {
  989. try
  990. {
  991. if (((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Tag != null)
  992. {
  993. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Image = null;
  994. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).StaticGraphics.Clear();
  995. break;
  996. }
  997. }
  998. catch (Exception ex)
  999. {
  1000. LogHelper.WriteLogError(Lang.切换产品清除主页图像时出错, ex);
  1001. }
  1002. }
  1003. }));
  1004. }
  1005. }
  1006. }