ShowVisionRender.xaml.cs 102 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456
  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.Enums;
  19. using TeamAAS_VP.Events;
  20. using TeamAAS_VP.Interfaces;
  21. using TeamAAS_VP.Models;
  22. using TeamAAS_VP.Resources.Languages;
  23. using TeamAAS_VP.ViewModels;
  24. using TeamAAS_VP.ViewModels.Home;
  25. using static MaterialDesignThemes.Wpf.Theme.ToolBar;
  26. namespace TeamAAS_VP.Views.Home
  27. {
  28. /// <summary>
  29. /// Interaction logic for ShowVisionRender
  30. /// </summary>
  31. public partial class ShowVisionRender : UserControl
  32. {
  33. ShowVisionRenderViewModel viewModel;
  34. Dictionary<Guid, WindowsFormsHost> vmRenders;
  35. Dictionary<Guid, TextBlock> Titles;
  36. IEventAggregator _eventAggregator;
  37. private readonly IProductService _productService;
  38. public ShowVisionRender()
  39. {
  40. InitializeComponent();
  41. vmRenders = new Dictionary<Guid, WindowsFormsHost>();
  42. Titles = new Dictionary<Guid, TextBlock>();
  43. viewModel = DataContext as ShowVisionRenderViewModel;
  44. _eventAggregator = viewModel._eventAggregator;
  45. _productService = ((Prism.PrismApplicationBase)App.Current).Container.Resolve<IProductService>();
  46. viewModel.UpdateLayout += ViewModel_UpdateLayout;
  47. _eventAggregator.GetEvent<RenderUpdateNotification>().Subscribe(UpdateRenderModuleSource);
  48. _eventAggregator.GetEvent<ProductChangedNotification>().Subscribe(ProductChanged);
  49. }
  50. private void UpdateRenderModuleSource(ShowRender render)
  51. {
  52. //foreach (var item in vmRenders)
  53. //{
  54. // if (item.Key== render.Id)
  55. // {
  56. // App.Current.Dispatcher.Invoke(new Action(() =>
  57. // {
  58. // item.Value.ModuleSource = render.ModuleSource;
  59. // }));
  60. // break;
  61. // }
  62. //}
  63. this.gridRender.Dispatcher.BeginInvoke(new Action(() =>
  64. {
  65. foreach (var item in vmRenders)
  66. {
  67. if (((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Tag!=null && ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Tag.ToString() == render.DisplayName)
  68. {
  69. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Record = null;
  70. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Image = render.Image;
  71. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).StaticGraphics.Clear();
  72. if (render.Graphic!=null)
  73. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).StaticGraphics.AddList(render.Graphic, "");
  74. if (render.Record != null)
  75. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Record = render.Record;
  76. if (render.IsSaveImage)
  77. {
  78. Bitmap bitmap = (Bitmap)((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).CreateContentBitmap(Cognex.VisionPro.Display.CogDisplayContentBitmapConstants.Custom);
  79. SaveImage(
  80. render.SaveImageModel,
  81. render.SaveImagePathModel,
  82. render.SavePath,
  83. render.Image,
  84. bitmap,
  85. render.Result,
  86. render.IsCompress,
  87. render.ImageFileName,
  88. render.Is3DModel
  89. );
  90. }
  91. break;
  92. }
  93. }
  94. /*
  95. foreach (var item in gridRender.Children)
  96. {
  97. if (item is WindowsFormsHost && ((WindowsFormsHost)item).Child is Cognex.VisionPro.CogRecordDisplay)
  98. {
  99. if (((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Tag != null && ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Tag.ToString() == render.DisplayName)
  100. {
  101. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Image = render.Image;
  102. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).StaticGraphics.Clear();
  103. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).StaticGraphics.AddList(render.Graphic, "");
  104. if (render.Record != null)
  105. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Record = render.Record;
  106. if (render.IsSaveImage)
  107. {
  108. 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);
  109. }
  110. break;
  111. }
  112. }
  113. else if (item is Grid)
  114. {
  115. foreach (var item1 in ((Grid)item).Children)
  116. {
  117. if (item1 is WindowsFormsHost && ((WindowsFormsHost)item1).Child is Cognex.VisionPro.CogRecordDisplay)
  118. {
  119. if (((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).Tag != null && ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).Tag.ToString() == render.DisplayName)
  120. {
  121. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).Image = render.Image;
  122. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).StaticGraphics.Clear();
  123. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).StaticGraphics.AddList(render.Graphic, "");
  124. if (render.Record != null)
  125. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Record = render.Record;
  126. if (render.IsSaveImage)
  127. {
  128. 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);
  129. }
  130. break;
  131. }
  132. }
  133. }
  134. break;
  135. }
  136. }*/
  137. }));
  138. }
  139. Grid grid1 = new Grid();
  140. Grid grid2 = new Grid();
  141. Grid grid3 = new Grid();
  142. Grid grid4 = new Grid();
  143. Grid grid5 = new Grid();
  144. Grid grid6 = new Grid();
  145. Grid grid7 = new Grid();
  146. Grid grid8 = new Grid();
  147. Grid grid9 = new Grid();
  148. Grid grid10 = new Grid();
  149. Grid grid11 = new Grid();
  150. Grid grid12 = new Grid();
  151. private void ViewModel_UpdateLayout(System.Collections.ObjectModel.ObservableCollection<Models.ShowRender> obj)
  152. {
  153. System.Windows.Media.FontFamily font = Application.Current.Resources["DefaultFont"] as System.Windows.Media.FontFamily;
  154. if (vmRenders.Count > 0)
  155. {
  156. foreach (var render in vmRenders)
  157. {
  158. render.Value.Dispose();
  159. }
  160. }
  161. vmRenders.Clear();
  162. gridRender.Children.Clear();
  163. Titles.Clear();
  164. if (obj == null) { return; }
  165. if (obj.Count == 0) { return; }
  166. Grid grid = new Grid();
  167. gridRender.RowDefinitions.Clear();
  168. gridRender.ColumnDefinitions.Clear();
  169. System.Windows.Thickness margin = new System.Windows.Thickness(2);
  170. switch (obj.Count)
  171. {
  172. case 1:
  173. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].DisplayName } });
  174. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12 , Foreground = System.Windows.Media.Brushes.Black });
  175. gridRender.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  176. gridRender.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  177. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  178. gridRender.ShowGridLines = false;
  179. gridRender.Children.Add(vmRenders[obj[0].Id]);
  180. gridRender.Children.Add(Titles[obj[0].Id]);
  181. Grid.SetRow(vmRenders[obj[0].Id], 1);
  182. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  183. Grid.SetRowSpan(vmRenders[obj[0].Id], 1);
  184. Grid.SetColumnSpan(vmRenders[obj[0].Id], 1);
  185. Grid.SetRow(Titles[obj[0].Id], 0);
  186. Grid.SetColumn(Titles[obj[0].Id], 0);
  187. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[0].Id]).Child).HorizontalScrollBar = false;
  188. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[0].Id]).Child).VerticalScrollBar = false;
  189. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[0].Id]).Child).AutoFit = true;
  190. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[0].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  191. break;
  192. case 2:
  193. //增加显示界面
  194. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].DisplayName } });
  195. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].DisplayName } });
  196. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12,Foreground = System.Windows.Media.Brushes.Black });
  197. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  198. //布局
  199. gridRender.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  200. gridRender.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  201. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  202. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  203. gridRender.ShowGridLines = true;
  204. gridRender.Children.Add(vmRenders[obj[0].Id]);
  205. gridRender.Children.Add(vmRenders[obj[1].Id]);
  206. gridRender.Children.Add(Titles[obj[0].Id]);
  207. gridRender.Children.Add(Titles[obj[1].Id]);
  208. Grid.SetRow(vmRenders[obj[0].Id], 1);
  209. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  210. Grid.SetRow(vmRenders[obj[1].Id], 1);
  211. Grid.SetColumn(vmRenders[obj[1].Id], 1);
  212. Grid.SetRowSpan(vmRenders[obj[0].Id], 1);
  213. Grid.SetColumnSpan(vmRenders[obj[0].Id], 1);
  214. Grid.SetRow(Titles[obj[0].Id], 0);
  215. Grid.SetColumn(Titles[obj[0].Id], 0);
  216. Grid.SetRow(Titles[obj[1].Id], 0);
  217. Grid.SetColumn(Titles[obj[1].Id], 1);
  218. for (int i = 0; i < 2; i++)
  219. {
  220. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  221. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  222. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  223. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  224. }
  225. break;
  226. case 3:
  227. //增加显示界面
  228. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].DisplayName } });
  229. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].DisplayName } });
  230. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].DisplayName } });
  231. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  232. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12,Foreground = System.Windows.Media.Brushes.Black });
  233. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  234. //布局
  235. gridRender.RowDefinitions.Add(new RowDefinition());
  236. gridRender.RowDefinitions.Add(new RowDefinition());
  237. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  238. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  239. gridRender.ShowGridLines = true;
  240. grid1 = new Grid();
  241. grid2 = new Grid();
  242. grid3 = new Grid();
  243. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  244. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  245. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  246. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  247. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  248. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  249. gridRender.Children.Add(grid1);
  250. gridRender.Children.Add(grid2);
  251. gridRender.Children.Add(grid3);
  252. Grid.SetRow(grid1, 0);
  253. Grid.SetColumn(grid1, 0);
  254. Grid.SetRow(grid2, 0);
  255. Grid.SetColumn(grid2, 1);
  256. Grid.SetRow(grid3, 1);
  257. Grid.SetColumn(grid3, 0);
  258. Grid.SetColumnSpan(grid3, 2);
  259. grid1.Children.Add(vmRenders[obj[0].Id]);
  260. grid2.Children.Add(vmRenders[obj[1].Id]);
  261. grid3.Children.Add(vmRenders[obj[2].Id]);
  262. grid1.Children.Add(Titles[obj[0].Id]);
  263. grid2.Children.Add(Titles[obj[1].Id]);
  264. grid3.Children.Add(Titles[obj[2].Id]);
  265. Grid.SetRow(vmRenders[obj[0].Id], 1);
  266. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  267. Grid.SetRow(vmRenders[obj[1].Id], 1);
  268. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  269. Grid.SetRow(vmRenders[obj[2].Id], 1);
  270. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  271. Grid.SetRow(Titles[obj[0].Id], 0);
  272. Grid.SetColumn(Titles[obj[0].Id], 0);
  273. Grid.SetRow(Titles[obj[1].Id], 0);
  274. Grid.SetColumn(Titles[obj[1].Id], 0);
  275. Grid.SetRow(Titles[obj[2].Id], 0);
  276. Grid.SetColumn(Titles[obj[2].Id], 0);
  277. for (int i = 0; i < 3; i++)
  278. {
  279. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  280. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  281. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  282. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  283. }
  284. break;
  285. case 4:
  286. //增加显示界面
  287. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].DisplayName } });
  288. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].DisplayName } });
  289. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].DisplayName } });
  290. vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].DisplayName } });
  291. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  292. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  293. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  294. Titles.Add(obj[3].Id, new TextBlock() { Text = obj[3].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  295. //布局
  296. gridRender.RowDefinitions.Add(new RowDefinition());
  297. gridRender.RowDefinitions.Add(new RowDefinition());
  298. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  299. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  300. gridRender.ShowGridLines = true;
  301. grid1 = new Grid();
  302. grid2 = new Grid();
  303. grid3 = new Grid();
  304. grid4 = new Grid();
  305. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  306. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  307. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  308. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  309. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  310. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  311. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  312. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  313. gridRender.Children.Add(grid1);
  314. gridRender.Children.Add(grid2);
  315. gridRender.Children.Add(grid3);
  316. gridRender.Children.Add(grid4);
  317. Grid.SetRow(grid1, 0);
  318. Grid.SetColumn(grid1, 0);
  319. Grid.SetRow(grid2, 0);
  320. Grid.SetColumn(grid2, 1);
  321. Grid.SetRow(grid3, 1);
  322. Grid.SetColumn(grid3, 0);
  323. Grid.SetRow(grid4, 1);
  324. Grid.SetColumn(grid4, 1);
  325. grid1.Children.Add(vmRenders[obj[0].Id]);
  326. grid2.Children.Add(vmRenders[obj[1].Id]);
  327. grid3.Children.Add(vmRenders[obj[2].Id]);
  328. grid4.Children.Add(vmRenders[obj[3].Id]);
  329. grid1.Children.Add(Titles[obj[0].Id]);
  330. grid2.Children.Add(Titles[obj[1].Id]);
  331. grid3.Children.Add(Titles[obj[2].Id]);
  332. grid4.Children.Add(Titles[obj[3].Id]);
  333. Grid.SetRow(vmRenders[obj[0].Id], 1);
  334. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  335. Grid.SetRow(vmRenders[obj[1].Id], 1);
  336. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  337. Grid.SetRow(vmRenders[obj[2].Id], 1);
  338. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  339. Grid.SetRow(vmRenders[obj[3].Id], 1);
  340. Grid.SetColumn(vmRenders[obj[3].Id], 0);
  341. //Grid.SetRowSpan(vmRenders[obj[2].Id], 1);
  342. //Grid.SetColumnSpan(vmRenders[obj[2].Id], 0);
  343. Grid.SetRow(Titles[obj[0].Id], 0);
  344. Grid.SetColumn(Titles[obj[0].Id], 0);
  345. Grid.SetRow(Titles[obj[1].Id], 0);
  346. Grid.SetColumn(Titles[obj[1].Id], 0);
  347. Grid.SetRow(Titles[obj[2].Id], 0);
  348. Grid.SetColumn(Titles[obj[2].Id], 0);
  349. Grid.SetRow(Titles[obj[3].Id], 0);
  350. Grid.SetColumn(Titles[obj[3].Id], 0);
  351. for (int i = 0; i < 4; i++)
  352. {
  353. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  354. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  355. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  356. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  357. }
  358. break;
  359. case 5:
  360. //增加显示界面
  361. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].DisplayName } });
  362. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].DisplayName } });
  363. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].DisplayName } });
  364. vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].DisplayName } });
  365. vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].DisplayName } });
  366. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12 ,Foreground= System.Windows.Media.Brushes.Black});
  367. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  368. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  369. Titles.Add(obj[3].Id, new TextBlock() { Text = obj[3].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  370. Titles.Add(obj[4].Id, new TextBlock() { Text = obj[4].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  371. //布局
  372. gridRender.RowDefinitions.Add(new RowDefinition());
  373. gridRender.RowDefinitions.Add(new RowDefinition());
  374. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  375. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  376. gridRender.ShowGridLines = true;
  377. grid1 = new Grid() { Background= System.Windows.Media.Brushes.White };
  378. grid2 = new Grid() { Background = System.Windows.Media.Brushes.White };
  379. grid3 = new Grid() { Background = System.Windows.Media.Brushes.White };
  380. grid4 = new Grid() { Background = System.Windows.Media.Brushes.White };
  381. grid5 = new Grid() { Background = System.Windows.Media.Brushes.White };
  382. grid6 = new Grid() { Background = System.Windows.Media.Brushes.White };
  383. grid6.ShowGridLines = true;
  384. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  385. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  386. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  387. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  388. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  389. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  390. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  391. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  392. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  393. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  394. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  395. grid6.ColumnDefinitions.Add(new ColumnDefinition());
  396. grid6.ColumnDefinitions.Add(new ColumnDefinition());
  397. grid6.ColumnDefinitions.Add(new ColumnDefinition());
  398. gridRender.Children.Add(grid1);
  399. gridRender.Children.Add(grid2);
  400. gridRender.Children.Add(grid6);
  401. grid6.Children.Add(grid3);
  402. grid6.Children.Add(grid4);
  403. grid6.Children.Add(grid5);
  404. grid1.Children.Add(vmRenders[obj[0].Id]);
  405. grid2.Children.Add(vmRenders[obj[1].Id]);
  406. grid3.Children.Add(vmRenders[obj[2].Id]);
  407. grid4.Children.Add(vmRenders[obj[3].Id]);
  408. grid5.Children.Add(vmRenders[obj[4].Id]);
  409. grid1.Children.Add(Titles[obj[0].Id]);
  410. grid2.Children.Add(Titles[obj[1].Id]);
  411. grid3.Children.Add(Titles[obj[2].Id]);
  412. grid4.Children.Add(Titles[obj[3].Id]);
  413. grid5.Children.Add(Titles[obj[4].Id]);
  414. Grid.SetRow(grid6, 1);
  415. Grid.SetColumn(grid6, 0);
  416. Grid.SetColumnSpan(grid6, 2);
  417. Grid.SetRow(grid1, 0);
  418. Grid.SetColumn(grid1, 0);
  419. Grid.SetRow(grid2, 0);
  420. Grid.SetColumn(grid2, 1);
  421. Grid.SetRow(grid3, 0);
  422. Grid.SetColumn(grid3, 0);
  423. Grid.SetRow(grid4, 0);
  424. Grid.SetColumn(grid4, 1);
  425. Grid.SetRow(grid5, 0);
  426. Grid.SetColumn(grid5, 2);
  427. Grid.SetRow(Titles[obj[0].Id], 0);
  428. Grid.SetColumn(Titles[obj[0].Id], 0);
  429. Grid.SetRow(Titles[obj[1].Id], 0);
  430. Grid.SetColumn(Titles[obj[1].Id], 0);
  431. Grid.SetRow(Titles[obj[2].Id], 0);
  432. Grid.SetColumn(Titles[obj[2].Id], 0);
  433. Grid.SetRow(Titles[obj[3].Id], 0);
  434. Grid.SetColumn(Titles[obj[3].Id], 0);
  435. Grid.SetRow(Titles[obj[4].Id], 0);
  436. Grid.SetColumn(Titles[obj[4].Id], 0);
  437. Grid.SetRow(vmRenders[obj[0].Id], 1);
  438. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  439. Grid.SetRow(vmRenders[obj[1].Id], 1);
  440. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  441. Grid.SetRow(vmRenders[obj[2].Id], 1);
  442. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  443. Grid.SetRow(vmRenders[obj[3].Id], 1);
  444. Grid.SetColumn(vmRenders[obj[3].Id], 0);
  445. Grid.SetRow(vmRenders[obj[4].Id], 1);
  446. Grid.SetColumn(vmRenders[obj[4].Id], 0);
  447. for (int i = 0; i < 5; i++)
  448. {
  449. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  450. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  451. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  452. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  453. }
  454. break;
  455. case 6:
  456. //增加显示界面
  457. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].DisplayName } });
  458. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].DisplayName } });
  459. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].DisplayName } });
  460. vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].DisplayName } });
  461. vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].DisplayName } });
  462. vmRenders.Add(obj[5].Id, new WindowsFormsHost() { Tag = obj[5].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[5].DisplayName } });
  463. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  464. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  465. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  466. Titles.Add(obj[3].Id, new TextBlock() { Text = obj[3].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  467. Titles.Add(obj[4].Id, new TextBlock() { Text = obj[4].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  468. Titles.Add(obj[5].Id, new TextBlock() { Text = obj[5].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  469. //布局
  470. gridRender.RowDefinitions.Add(new RowDefinition());
  471. gridRender.RowDefinitions.Add(new RowDefinition());
  472. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  473. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  474. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  475. gridRender.ShowGridLines = true;
  476. grid1 = new Grid();
  477. grid2 = new Grid();
  478. grid3 = new Grid();
  479. grid4 = new Grid();
  480. grid5 = new Grid();
  481. grid6 = new Grid();
  482. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  483. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  484. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  485. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  486. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  487. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  488. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  489. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  490. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  491. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  492. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  493. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  494. gridRender.Children.Add(grid1);
  495. gridRender.Children.Add(grid2);
  496. gridRender.Children.Add(grid3);
  497. gridRender.Children.Add(grid4);
  498. gridRender.Children.Add(grid5);
  499. gridRender.Children.Add(grid6);
  500. Grid.SetRow(grid1, 0);
  501. Grid.SetColumn(grid1, 0);
  502. Grid.SetRow(grid2, 0);
  503. Grid.SetColumn(grid2, 1);
  504. Grid.SetRow(grid3, 0);
  505. Grid.SetColumn(grid3, 2);
  506. Grid.SetRow(grid4, 1);
  507. Grid.SetColumn(grid4, 0);
  508. Grid.SetRow(grid5, 1);
  509. Grid.SetColumn(grid5, 1);
  510. Grid.SetRow(grid6, 1);
  511. Grid.SetColumn(grid6, 2);
  512. grid1.Children.Add(vmRenders[obj[0].Id]);
  513. grid2.Children.Add(vmRenders[obj[1].Id]);
  514. grid3.Children.Add(vmRenders[obj[2].Id]);
  515. grid4.Children.Add(vmRenders[obj[3].Id]);
  516. grid5.Children.Add(vmRenders[obj[4].Id]);
  517. grid6.Children.Add(vmRenders[obj[5].Id]);
  518. grid1.Children.Add(Titles[obj[0].Id]);
  519. grid2.Children.Add(Titles[obj[1].Id]);
  520. grid3.Children.Add(Titles[obj[2].Id]);
  521. grid4.Children.Add(Titles[obj[3].Id]);
  522. grid5.Children.Add(Titles[obj[4].Id]);
  523. grid6.Children.Add(Titles[obj[5].Id]);
  524. Grid.SetRow(Titles[obj[0].Id], 0);
  525. Grid.SetColumn(Titles[obj[0].Id], 0);
  526. Grid.SetRow(Titles[obj[1].Id], 0);
  527. Grid.SetColumn(Titles[obj[1].Id], 0);
  528. Grid.SetRow(Titles[obj[2].Id], 0);
  529. Grid.SetColumn(Titles[obj[2].Id], 0);
  530. Grid.SetRow(Titles[obj[3].Id], 0);
  531. Grid.SetColumn(Titles[obj[3].Id], 0);
  532. Grid.SetRow(Titles[obj[4].Id], 0);
  533. Grid.SetColumn(Titles[obj[4].Id], 0);
  534. Grid.SetRow(Titles[obj[5].Id], 0);
  535. Grid.SetColumn(Titles[obj[5].Id], 0);
  536. Grid.SetRow(vmRenders[obj[0].Id], 1);
  537. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  538. Grid.SetRow(vmRenders[obj[1].Id], 1);
  539. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  540. Grid.SetRow(vmRenders[obj[2].Id], 1);
  541. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  542. Grid.SetRow(vmRenders[obj[3].Id], 1);
  543. Grid.SetColumn(vmRenders[obj[3].Id], 0);
  544. Grid.SetRow(vmRenders[obj[4].Id], 1);
  545. Grid.SetColumn(vmRenders[obj[4].Id], 0);
  546. Grid.SetRow(vmRenders[obj[5].Id], 1);
  547. Grid.SetColumn(vmRenders[obj[5].Id], 0);
  548. for (int i = 0; i < 6; i++)
  549. {
  550. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  551. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  552. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  553. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  554. }
  555. break;
  556. case 7:
  557. //增加显示界面
  558. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].DisplayName } });
  559. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].DisplayName } });
  560. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].DisplayName } });
  561. vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].DisplayName } });
  562. vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].DisplayName } });
  563. vmRenders.Add(obj[5].Id, new WindowsFormsHost() { Tag = obj[5].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[5].DisplayName } });
  564. vmRenders.Add(obj[6].Id, new WindowsFormsHost() { Tag = obj[6].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[6].DisplayName } });
  565. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  566. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  567. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  568. Titles.Add(obj[3].Id, new TextBlock() { Text = obj[3].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  569. Titles.Add(obj[4].Id, new TextBlock() { Text = obj[4].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  570. Titles.Add(obj[5].Id, new TextBlock() { Text = obj[5].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  571. Titles.Add(obj[6].Id, new TextBlock() { Text = obj[6].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  572. //布局
  573. gridRender.RowDefinitions.Add(new RowDefinition());
  574. gridRender.RowDefinitions.Add(new RowDefinition());
  575. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  576. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  577. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  578. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  579. gridRender.ShowGridLines = true;
  580. grid1 = new Grid();
  581. grid2 = new Grid();
  582. grid3 = new Grid();
  583. grid4 = new Grid();
  584. grid5 = new Grid();
  585. grid6 = new Grid();
  586. grid7 = new Grid();
  587. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  588. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  589. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  590. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  591. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  592. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  593. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  594. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  595. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  596. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  597. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  598. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  599. grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  600. grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  601. gridRender.Children.Add(grid1);
  602. gridRender.Children.Add(grid2);
  603. gridRender.Children.Add(grid3);
  604. gridRender.Children.Add(grid4);
  605. gridRender.Children.Add(grid5);
  606. gridRender.Children.Add(grid6);
  607. gridRender.Children.Add(grid7);
  608. Grid.SetRow(grid1, 0);
  609. Grid.SetColumn(grid1, 0);
  610. Grid.SetRow(grid2, 0);
  611. Grid.SetColumn(grid2, 1);
  612. Grid.SetRow(grid3, 0);
  613. Grid.SetColumn(grid3, 2);
  614. Grid.SetRow(grid4, 0);
  615. Grid.SetColumn(grid4, 3);
  616. Grid.SetRow(grid5, 1);
  617. Grid.SetColumn(grid5, 0);
  618. Grid.SetRow(grid6, 1);
  619. Grid.SetColumn(grid6, 1);
  620. Grid.SetRow(grid7, 1);
  621. Grid.SetColumn(grid7, 2);
  622. grid1.Children.Add(vmRenders[obj[0].Id]);
  623. grid2.Children.Add(vmRenders[obj[1].Id]);
  624. grid3.Children.Add(vmRenders[obj[2].Id]);
  625. grid4.Children.Add(vmRenders[obj[3].Id]);
  626. grid5.Children.Add(vmRenders[obj[4].Id]);
  627. grid6.Children.Add(vmRenders[obj[5].Id]);
  628. grid7.Children.Add(vmRenders[obj[6].Id]);
  629. grid1.Children.Add(Titles[obj[0].Id]);
  630. grid2.Children.Add(Titles[obj[1].Id]);
  631. grid3.Children.Add(Titles[obj[2].Id]);
  632. grid4.Children.Add(Titles[obj[3].Id]);
  633. grid5.Children.Add(Titles[obj[4].Id]);
  634. grid6.Children.Add(Titles[obj[5].Id]);
  635. grid7.Children.Add(Titles[obj[6].Id]);
  636. Grid.SetRow(Titles[obj[0].Id], 0);
  637. Grid.SetColumn(Titles[obj[0].Id], 0);
  638. Grid.SetRow(Titles[obj[1].Id], 0);
  639. Grid.SetColumn(Titles[obj[1].Id], 0);
  640. Grid.SetRow(Titles[obj[2].Id], 0);
  641. Grid.SetColumn(Titles[obj[2].Id], 0);
  642. Grid.SetRow(Titles[obj[3].Id], 0);
  643. Grid.SetColumn(Titles[obj[3].Id], 0);
  644. Grid.SetRow(Titles[obj[4].Id], 0);
  645. Grid.SetColumn(Titles[obj[4].Id], 0);
  646. Grid.SetRow(Titles[obj[5].Id], 0);
  647. Grid.SetColumn(Titles[obj[5].Id], 0);
  648. Grid.SetRow(Titles[obj[6].Id], 0);
  649. Grid.SetColumn(Titles[obj[6].Id], 0);
  650. Grid.SetRow(vmRenders[obj[0].Id], 1);
  651. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  652. Grid.SetRow(vmRenders[obj[1].Id], 1);
  653. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  654. Grid.SetRow(vmRenders[obj[2].Id], 1);
  655. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  656. Grid.SetRow(vmRenders[obj[3].Id], 1);
  657. Grid.SetColumn(vmRenders[obj[3].Id], 0);
  658. Grid.SetRow(vmRenders[obj[4].Id], 1);
  659. Grid.SetColumn(vmRenders[obj[4].Id], 0);
  660. Grid.SetRow(vmRenders[obj[5].Id], 1);
  661. Grid.SetColumn(vmRenders[obj[5].Id], 0);
  662. Grid.SetRow(vmRenders[obj[6].Id], 1);
  663. Grid.SetColumn(vmRenders[obj[6].Id], 0);
  664. for (int i = 0; i < 7; i++)
  665. {
  666. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  667. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  668. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  669. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  670. }
  671. break;
  672. case 8:
  673. //增加显示界面
  674. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].DisplayName } });
  675. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].DisplayName } });
  676. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].DisplayName } });
  677. vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].DisplayName } });
  678. vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].DisplayName } });
  679. vmRenders.Add(obj[5].Id, new WindowsFormsHost() { Tag = obj[5].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[5].DisplayName } });
  680. vmRenders.Add(obj[6].Id, new WindowsFormsHost() { Tag = obj[6].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[6].DisplayName } });
  681. vmRenders.Add(obj[7].Id, new WindowsFormsHost() { Tag = obj[6].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[7].DisplayName } });
  682. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  683. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  684. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  685. Titles.Add(obj[3].Id, new TextBlock() { Text = obj[3].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  686. Titles.Add(obj[4].Id, new TextBlock() { Text = obj[4].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  687. Titles.Add(obj[5].Id, new TextBlock() { Text = obj[5].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  688. Titles.Add(obj[6].Id, new TextBlock() { Text = obj[6].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  689. Titles.Add(obj[7].Id, new TextBlock() { Text = obj[7].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  690. //布局
  691. gridRender.RowDefinitions.Add(new RowDefinition());
  692. gridRender.RowDefinitions.Add(new RowDefinition());
  693. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  694. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  695. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  696. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  697. gridRender.ShowGridLines = true;
  698. grid1 = new Grid();
  699. grid2 = new Grid();
  700. grid3 = new Grid();
  701. grid4 = new Grid();
  702. grid5 = new Grid();
  703. grid6 = new Grid();
  704. grid7 = new Grid();
  705. grid8 = new Grid();
  706. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  707. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  708. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  709. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  710. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  711. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  712. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  713. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  714. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  715. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  716. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  717. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  718. grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  719. grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  720. grid8.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  721. grid8.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  722. gridRender.Children.Add(grid1);
  723. gridRender.Children.Add(grid2);
  724. gridRender.Children.Add(grid3);
  725. gridRender.Children.Add(grid4);
  726. gridRender.Children.Add(grid5);
  727. gridRender.Children.Add(grid6);
  728. gridRender.Children.Add(grid7);
  729. gridRender.Children.Add(grid8);
  730. Grid.SetRow(grid1, 0);
  731. Grid.SetColumn(grid1, 0);
  732. Grid.SetRow(grid2, 0);
  733. Grid.SetColumn(grid2, 1);
  734. Grid.SetRow(grid3, 0);
  735. Grid.SetColumn(grid3, 2);
  736. Grid.SetRow(grid4, 0);
  737. Grid.SetColumn(grid4, 3);
  738. Grid.SetRow(grid5, 1);
  739. Grid.SetColumn(grid5, 0);
  740. Grid.SetRow(grid6, 1);
  741. Grid.SetColumn(grid6, 1);
  742. Grid.SetRow(grid7, 1);
  743. Grid.SetColumn(grid7, 2);
  744. Grid.SetRow(grid8, 1);
  745. Grid.SetColumn(grid8, 3);
  746. grid1.Children.Add(vmRenders[obj[0].Id]);
  747. grid2.Children.Add(vmRenders[obj[1].Id]);
  748. grid3.Children.Add(vmRenders[obj[2].Id]);
  749. grid4.Children.Add(vmRenders[obj[3].Id]);
  750. grid5.Children.Add(vmRenders[obj[4].Id]);
  751. grid6.Children.Add(vmRenders[obj[5].Id]);
  752. grid7.Children.Add(vmRenders[obj[6].Id]);
  753. grid8.Children.Add(vmRenders[obj[7].Id]);
  754. grid1.Children.Add(Titles[obj[0].Id]);
  755. grid2.Children.Add(Titles[obj[1].Id]);
  756. grid3.Children.Add(Titles[obj[2].Id]);
  757. grid4.Children.Add(Titles[obj[3].Id]);
  758. grid5.Children.Add(Titles[obj[4].Id]);
  759. grid6.Children.Add(Titles[obj[5].Id]);
  760. grid7.Children.Add(Titles[obj[6].Id]);
  761. grid8.Children.Add(Titles[obj[7].Id]);
  762. Grid.SetRow(Titles[obj[0].Id], 0);
  763. Grid.SetColumn(Titles[obj[0].Id], 0);
  764. Grid.SetRow(Titles[obj[1].Id], 0);
  765. Grid.SetColumn(Titles[obj[1].Id], 0);
  766. Grid.SetRow(Titles[obj[2].Id], 0);
  767. Grid.SetColumn(Titles[obj[2].Id], 0);
  768. Grid.SetRow(Titles[obj[3].Id], 0);
  769. Grid.SetColumn(Titles[obj[3].Id], 0);
  770. Grid.SetRow(Titles[obj[4].Id], 0);
  771. Grid.SetColumn(Titles[obj[4].Id], 0);
  772. Grid.SetRow(Titles[obj[5].Id], 0);
  773. Grid.SetColumn(Titles[obj[5].Id], 0);
  774. Grid.SetRow(Titles[obj[6].Id], 0);
  775. Grid.SetColumn(Titles[obj[6].Id], 0);
  776. Grid.SetRow(Titles[obj[7].Id], 0);
  777. Grid.SetColumn(Titles[obj[7].Id], 0);
  778. Grid.SetRow(vmRenders[obj[0].Id], 1);
  779. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  780. Grid.SetRow(vmRenders[obj[1].Id], 1);
  781. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  782. Grid.SetRow(vmRenders[obj[2].Id], 1);
  783. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  784. Grid.SetRow(vmRenders[obj[3].Id], 1);
  785. Grid.SetColumn(vmRenders[obj[3].Id], 0);
  786. Grid.SetRow(vmRenders[obj[4].Id], 1);
  787. Grid.SetColumn(vmRenders[obj[4].Id], 0);
  788. Grid.SetRow(vmRenders[obj[5].Id], 1);
  789. Grid.SetColumn(vmRenders[obj[5].Id], 0);
  790. Grid.SetRow(vmRenders[obj[6].Id], 1);
  791. Grid.SetColumn(vmRenders[obj[6].Id], 0);
  792. Grid.SetRow(vmRenders[obj[7].Id], 1);
  793. Grid.SetColumn(vmRenders[obj[7].Id], 0);
  794. for (int i = 0; i < 8; i++)
  795. {
  796. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  797. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  798. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  799. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  800. }
  801. break;
  802. case 9:
  803. //增加显示界面
  804. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].DisplayName } });
  805. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].DisplayName } });
  806. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].DisplayName } });
  807. vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].DisplayName } });
  808. vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].DisplayName } });
  809. vmRenders.Add(obj[5].Id, new WindowsFormsHost() { Tag = obj[5].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[5].DisplayName } });
  810. vmRenders.Add(obj[6].Id, new WindowsFormsHost() { Tag = obj[6].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[6].DisplayName } });
  811. vmRenders.Add(obj[7].Id, new WindowsFormsHost() { Tag = obj[7].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[7].DisplayName } });
  812. vmRenders.Add(obj[8].Id, new WindowsFormsHost() { Tag = obj[8].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[8].DisplayName } });
  813. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  814. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  815. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  816. Titles.Add(obj[3].Id, new TextBlock() { Text = obj[3].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  817. Titles.Add(obj[4].Id, new TextBlock() { Text = obj[4].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  818. Titles.Add(obj[5].Id, new TextBlock() { Text = obj[5].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  819. Titles.Add(obj[6].Id, new TextBlock() { Text = obj[6].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  820. Titles.Add(obj[7].Id, new TextBlock() { Text = obj[7].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  821. Titles.Add(obj[8].Id, new TextBlock() { Text = obj[8].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  822. //布局
  823. gridRender.RowDefinitions.Add(new RowDefinition());
  824. gridRender.RowDefinitions.Add(new RowDefinition());
  825. gridRender.RowDefinitions.Add(new RowDefinition());
  826. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  827. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  828. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  829. gridRender.ShowGridLines = true;
  830. grid1 = new Grid();
  831. grid2 = new Grid();
  832. grid3 = new Grid();
  833. grid4 = new Grid();
  834. grid5 = new Grid();
  835. grid6 = new Grid();
  836. grid7 = new Grid();
  837. grid8 = new Grid();
  838. grid9 = new Grid();
  839. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  840. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  841. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  842. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  843. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  844. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  845. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  846. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  847. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  848. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  849. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  850. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  851. grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  852. grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  853. grid8.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  854. grid8.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  855. grid9.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  856. grid9.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  857. gridRender.Children.Add(grid1);
  858. gridRender.Children.Add(grid2);
  859. gridRender.Children.Add(grid3);
  860. gridRender.Children.Add(grid4);
  861. gridRender.Children.Add(grid5);
  862. gridRender.Children.Add(grid6);
  863. gridRender.Children.Add(grid7);
  864. gridRender.Children.Add(grid8);
  865. gridRender.Children.Add(grid9);
  866. Grid.SetRow(grid1, 0);
  867. Grid.SetColumn(grid1, 0);
  868. Grid.SetRow(grid2, 0);
  869. Grid.SetColumn(grid2, 1);
  870. Grid.SetRow(grid3, 0);
  871. Grid.SetColumn(grid3, 2);
  872. Grid.SetRow(grid4, 1);
  873. Grid.SetColumn(grid4, 0);
  874. Grid.SetRow(grid5, 1);
  875. Grid.SetColumn(grid5, 1);
  876. Grid.SetRow(grid6, 1);
  877. Grid.SetColumn(grid6, 2);
  878. Grid.SetRow(grid7, 2);
  879. Grid.SetColumn(grid7, 0);
  880. Grid.SetRow(grid8, 2);
  881. Grid.SetColumn(grid8, 1);
  882. Grid.SetRow(grid9, 2);
  883. Grid.SetColumn(grid9, 2);
  884. grid1.Children.Add(vmRenders[obj[0].Id]);
  885. grid2.Children.Add(vmRenders[obj[1].Id]);
  886. grid3.Children.Add(vmRenders[obj[2].Id]);
  887. grid4.Children.Add(vmRenders[obj[3].Id]);
  888. grid5.Children.Add(vmRenders[obj[4].Id]);
  889. grid6.Children.Add(vmRenders[obj[5].Id]);
  890. grid7.Children.Add(vmRenders[obj[6].Id]);
  891. grid8.Children.Add(vmRenders[obj[7].Id]);
  892. grid9.Children.Add(vmRenders[obj[8].Id]);
  893. grid1.Children.Add(Titles[obj[0].Id]);
  894. grid2.Children.Add(Titles[obj[1].Id]);
  895. grid3.Children.Add(Titles[obj[2].Id]);
  896. grid4.Children.Add(Titles[obj[3].Id]);
  897. grid5.Children.Add(Titles[obj[4].Id]);
  898. grid6.Children.Add(Titles[obj[5].Id]);
  899. grid7.Children.Add(Titles[obj[6].Id]);
  900. grid8.Children.Add(Titles[obj[7].Id]);
  901. grid9.Children.Add(Titles[obj[8].Id]);
  902. Grid.SetRow(Titles[obj[0].Id], 0);
  903. Grid.SetColumn(Titles[obj[0].Id], 0);
  904. Grid.SetRow(Titles[obj[1].Id], 0);
  905. Grid.SetColumn(Titles[obj[1].Id], 0);
  906. Grid.SetRow(Titles[obj[2].Id], 0);
  907. Grid.SetColumn(Titles[obj[2].Id], 0);
  908. Grid.SetRow(Titles[obj[3].Id], 0);
  909. Grid.SetColumn(Titles[obj[3].Id], 0);
  910. Grid.SetRow(Titles[obj[4].Id], 0);
  911. Grid.SetColumn(Titles[obj[4].Id], 0);
  912. Grid.SetRow(Titles[obj[5].Id], 0);
  913. Grid.SetColumn(Titles[obj[5].Id], 0);
  914. Grid.SetRow(Titles[obj[6].Id], 0);
  915. Grid.SetColumn(Titles[obj[6].Id], 0);
  916. Grid.SetRow(Titles[obj[7].Id], 0);
  917. Grid.SetColumn(Titles[obj[7].Id], 0);
  918. Grid.SetRow(Titles[obj[8].Id], 0);
  919. Grid.SetColumn(Titles[obj[8].Id], 0);
  920. Grid.SetRow(vmRenders[obj[0].Id], 1);
  921. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  922. Grid.SetRow(vmRenders[obj[1].Id], 1);
  923. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  924. Grid.SetRow(vmRenders[obj[2].Id], 1);
  925. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  926. Grid.SetRow(vmRenders[obj[3].Id], 1);
  927. Grid.SetColumn(vmRenders[obj[3].Id], 0);
  928. Grid.SetRow(vmRenders[obj[4].Id], 1);
  929. Grid.SetColumn(vmRenders[obj[4].Id], 0);
  930. Grid.SetRow(vmRenders[obj[5].Id], 1);
  931. Grid.SetColumn(vmRenders[obj[5].Id], 0);
  932. Grid.SetRow(vmRenders[obj[6].Id], 1);
  933. Grid.SetColumn(vmRenders[obj[6].Id], 0);
  934. Grid.SetRow(vmRenders[obj[7].Id], 1);
  935. Grid.SetColumn(vmRenders[obj[7].Id], 0);
  936. Grid.SetRow(vmRenders[obj[8].Id], 1);
  937. Grid.SetColumn(vmRenders[obj[8].Id], 0);
  938. for (int i = 0; i < 9; i++)
  939. {
  940. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  941. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  942. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  943. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  944. }
  945. break;
  946. case 12:
  947. //增加显示界面
  948. vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].DisplayName } });
  949. vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].DisplayName } });
  950. vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].DisplayName } });
  951. vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].DisplayName } });
  952. vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].DisplayName } });
  953. vmRenders.Add(obj[5].Id, new WindowsFormsHost() { Tag = obj[5].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[5].DisplayName } });
  954. vmRenders.Add(obj[6].Id, new WindowsFormsHost() { Tag = obj[6].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[6].DisplayName } });
  955. vmRenders.Add(obj[7].Id, new WindowsFormsHost() { Tag = obj[7].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[7].DisplayName } });
  956. vmRenders.Add(obj[8].Id, new WindowsFormsHost() { Tag = obj[8].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[8].DisplayName } });
  957. vmRenders.Add(obj[9].Id, new WindowsFormsHost() { Tag = obj[9].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[9].DisplayName } });
  958. vmRenders.Add(obj[10].Id, new WindowsFormsHost() { Tag = obj[10].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[10].DisplayName } });
  959. vmRenders.Add(obj[11].Id, new WindowsFormsHost() { Tag = obj[11].DisplayName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[11].DisplayName } });
  960. Titles.Add(obj[0].Id, new TextBlock() { Text = obj[0].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  961. Titles.Add(obj[1].Id, new TextBlock() { Text = obj[1].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  962. Titles.Add(obj[2].Id, new TextBlock() { Text = obj[2].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  963. Titles.Add(obj[3].Id, new TextBlock() { Text = obj[3].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  964. Titles.Add(obj[4].Id, new TextBlock() { Text = obj[4].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  965. Titles.Add(obj[5].Id, new TextBlock() { Text = obj[5].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  966. Titles.Add(obj[6].Id, new TextBlock() { Text = obj[6].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  967. Titles.Add(obj[7].Id, new TextBlock() { Text = obj[7].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  968. Titles.Add(obj[8].Id, new TextBlock() { Text = obj[8].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  969. Titles.Add(obj[9].Id, new TextBlock() { Text = obj[9].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  970. Titles.Add(obj[10].Id, new TextBlock() { Text = obj[10].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  971. Titles.Add(obj[11].Id, new TextBlock() { Text = obj[11].DisplayName, HorizontalAlignment = System.Windows.HorizontalAlignment.Center, FontWeight = FontWeights.Bold, FontFamily = font, FontSize = 12, Foreground = System.Windows.Media.Brushes.Black });
  972. //布局
  973. gridRender.RowDefinitions.Add(new RowDefinition());
  974. gridRender.RowDefinitions.Add(new RowDefinition());
  975. gridRender.RowDefinitions.Add(new RowDefinition());
  976. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  977. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  978. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  979. gridRender.ColumnDefinitions.Add(new ColumnDefinition());
  980. gridRender.ShowGridLines = true;
  981. grid1 = new Grid();
  982. grid2 = new Grid();
  983. grid3 = new Grid();
  984. grid4 = new Grid();
  985. grid5 = new Grid();
  986. grid6 = new Grid();
  987. grid7 = new Grid();
  988. grid8 = new Grid();
  989. grid9 = new Grid();
  990. grid10 = new Grid();
  991. grid11 = new Grid();
  992. grid12 = new Grid();
  993. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  994. grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  995. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  996. grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  997. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  998. grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  999. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  1000. grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  1001. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  1002. grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  1003. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  1004. grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  1005. grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  1006. grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  1007. grid8.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  1008. grid8.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  1009. grid9.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  1010. grid9.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  1011. grid10.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  1012. grid10.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  1013. grid11.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  1014. grid11.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  1015. grid12.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
  1016. grid12.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
  1017. gridRender.Children.Add(grid1);
  1018. gridRender.Children.Add(grid2);
  1019. gridRender.Children.Add(grid3);
  1020. gridRender.Children.Add(grid4);
  1021. gridRender.Children.Add(grid5);
  1022. gridRender.Children.Add(grid6);
  1023. gridRender.Children.Add(grid7);
  1024. gridRender.Children.Add(grid8);
  1025. gridRender.Children.Add(grid9);
  1026. gridRender.Children.Add(grid10);
  1027. gridRender.Children.Add(grid11);
  1028. gridRender.Children.Add(grid12);
  1029. Grid.SetRow(grid1, 0);
  1030. Grid.SetColumn(grid1, 0);
  1031. Grid.SetRow(grid2, 0);
  1032. Grid.SetColumn(grid2, 1);
  1033. Grid.SetRow(grid3, 0);
  1034. Grid.SetColumn(grid3, 2);
  1035. Grid.SetRow(grid4, 0);
  1036. Grid.SetColumn(grid4, 3);
  1037. Grid.SetRow(grid5, 1);
  1038. Grid.SetColumn(grid5, 0);
  1039. Grid.SetRow(grid6, 1);
  1040. Grid.SetColumn(grid6, 1);
  1041. Grid.SetRow(grid7, 1);
  1042. Grid.SetColumn(grid7, 2);
  1043. Grid.SetRow(grid8, 1);
  1044. Grid.SetColumn(grid8, 3);
  1045. Grid.SetRow(grid9, 2);
  1046. Grid.SetColumn(grid9, 0);
  1047. Grid.SetRow(grid10, 2);
  1048. Grid.SetColumn(grid10, 1);
  1049. Grid.SetRow(grid11, 2);
  1050. Grid.SetColumn(grid11, 2);
  1051. Grid.SetRow(grid12, 2);
  1052. Grid.SetColumn(grid12, 3);
  1053. grid1.Children.Add(vmRenders[obj[0].Id]);
  1054. grid2.Children.Add(vmRenders[obj[1].Id]);
  1055. grid3.Children.Add(vmRenders[obj[2].Id]);
  1056. grid4.Children.Add(vmRenders[obj[3].Id]);
  1057. grid5.Children.Add(vmRenders[obj[4].Id]);
  1058. grid6.Children.Add(vmRenders[obj[5].Id]);
  1059. grid7.Children.Add(vmRenders[obj[6].Id]);
  1060. grid8.Children.Add(vmRenders[obj[7].Id]);
  1061. grid9.Children.Add(vmRenders[obj[8].Id]);
  1062. grid10.Children.Add(vmRenders[obj[9].Id]);
  1063. grid11.Children.Add(vmRenders[obj[10].Id]);
  1064. grid12.Children.Add(vmRenders[obj[11].Id]);
  1065. grid1.Children.Add(Titles[obj[0].Id]);
  1066. grid2.Children.Add(Titles[obj[1].Id]);
  1067. grid3.Children.Add(Titles[obj[2].Id]);
  1068. grid4.Children.Add(Titles[obj[3].Id]);
  1069. grid5.Children.Add(Titles[obj[4].Id]);
  1070. grid6.Children.Add(Titles[obj[5].Id]);
  1071. grid7.Children.Add(Titles[obj[6].Id]);
  1072. grid8.Children.Add(Titles[obj[7].Id]);
  1073. grid9.Children.Add(Titles[obj[8].Id]);
  1074. grid10.Children.Add(Titles[obj[9].Id]);
  1075. grid11.Children.Add(Titles[obj[10].Id]);
  1076. grid12.Children.Add(Titles[obj[11].Id]);
  1077. Grid.SetRow(Titles[obj[0].Id], 0);
  1078. Grid.SetColumn(Titles[obj[0].Id], 0);
  1079. Grid.SetRow(Titles[obj[1].Id], 0);
  1080. Grid.SetColumn(Titles[obj[1].Id], 0);
  1081. Grid.SetRow(Titles[obj[2].Id], 0);
  1082. Grid.SetColumn(Titles[obj[2].Id], 0);
  1083. Grid.SetRow(Titles[obj[3].Id], 0);
  1084. Grid.SetColumn(Titles[obj[3].Id], 0);
  1085. Grid.SetRow(Titles[obj[4].Id], 0);
  1086. Grid.SetColumn(Titles[obj[4].Id], 0);
  1087. Grid.SetRow(Titles[obj[5].Id], 0);
  1088. Grid.SetColumn(Titles[obj[5].Id], 0);
  1089. Grid.SetRow(Titles[obj[6].Id], 0);
  1090. Grid.SetColumn(Titles[obj[6].Id], 0);
  1091. Grid.SetRow(Titles[obj[7].Id], 0);
  1092. Grid.SetColumn(Titles[obj[7].Id], 0);
  1093. Grid.SetRow(Titles[obj[8].Id], 0);
  1094. Grid.SetColumn(Titles[obj[8].Id], 0);
  1095. Grid.SetRow(Titles[obj[9].Id], 0);
  1096. Grid.SetColumn(Titles[obj[9].Id], 0);
  1097. Grid.SetRow(Titles[obj[10].Id], 0);
  1098. Grid.SetColumn(Titles[obj[10].Id], 0);
  1099. Grid.SetRow(Titles[obj[11].Id], 0);
  1100. Grid.SetColumn(Titles[obj[11].Id], 0);
  1101. Grid.SetRow(vmRenders[obj[0].Id], 1);
  1102. Grid.SetColumn(vmRenders[obj[0].Id], 0);
  1103. Grid.SetRow(vmRenders[obj[1].Id], 1);
  1104. Grid.SetColumn(vmRenders[obj[1].Id], 0);
  1105. Grid.SetRow(vmRenders[obj[2].Id], 1);
  1106. Grid.SetColumn(vmRenders[obj[2].Id], 0);
  1107. Grid.SetRow(vmRenders[obj[3].Id], 1);
  1108. Grid.SetColumn(vmRenders[obj[3].Id], 0);
  1109. Grid.SetRow(vmRenders[obj[4].Id], 1);
  1110. Grid.SetColumn(vmRenders[obj[4].Id], 0);
  1111. Grid.SetRow(vmRenders[obj[5].Id], 1);
  1112. Grid.SetColumn(vmRenders[obj[5].Id], 0);
  1113. Grid.SetRow(vmRenders[obj[6].Id], 1);
  1114. Grid.SetColumn(vmRenders[obj[6].Id], 0);
  1115. Grid.SetRow(vmRenders[obj[7].Id], 1);
  1116. Grid.SetColumn(vmRenders[obj[7].Id], 0);
  1117. Grid.SetRow(vmRenders[obj[8].Id], 1);
  1118. Grid.SetColumn(vmRenders[obj[8].Id], 0);
  1119. Grid.SetRow(vmRenders[obj[9].Id], 1);
  1120. Grid.SetColumn(vmRenders[obj[9].Id], 0);
  1121. Grid.SetRow(vmRenders[obj[10].Id], 1);
  1122. Grid.SetColumn(vmRenders[obj[10].Id], 0);
  1123. Grid.SetRow(vmRenders[obj[11].Id], 1);
  1124. Grid.SetColumn(vmRenders[obj[11].Id], 0);
  1125. for (int i = 0; i < 12; i++)
  1126. {
  1127. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
  1128. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
  1129. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
  1130. ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
  1131. }
  1132. break;
  1133. default:
  1134. break;
  1135. }
  1136. }
  1137. /// <summary>
  1138. /// 保存图像(保持你原有逻辑不变,补充 Dispose 兜底,防止压缩分支不释放导致闪退)
  1139. /// </summary>
  1140. private void SaveImage(ProcedureSaveImageModel saveImageModel, ProcedureSaveImagePathModel saveImagePathModel, string path, ICogImage image, Bitmap reimage, bool result, bool isCompress, string imageFileName,bool is3Dmodel)
  1141. {
  1142. if (string.IsNullOrEmpty(path) || string.IsNullOrWhiteSpace(path) || !Path.IsPathRooted(path))
  1143. {
  1144. _eventAggregator.GetEvent<TaskMessageNotification>()
  1145. .Publish(new Models.MessageStruct() { Message = "保存图像路径为无效的路径!", level = MessageLevel.Alarm });
  1146. return;
  1147. }
  1148. Task.Run(() =>
  1149. {
  1150. try
  1151. {
  1152. DateTime now = DateTime.Now;
  1153. //图片名
  1154. string imgName = now.ToString("yyyy-MM-dd HH_mm_ss");
  1155. if (!string.IsNullOrEmpty(imageFileName))
  1156. {
  1157. imgName = imageFileName;
  1158. }
  1159. if (saveImageModel == ProcedureSaveImageModel.Original)
  1160. {
  1161. string Originalpath = $"{path}\\{now:yyyy-MM}\\{now:MM-dd}\\{imgName}.bmp";
  1162. if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_OkNG_Time)
  1163. {
  1164. Originalpath = result
  1165. ? $"{path}\\{now:yyyy-MM}\\{now:MM-dd}\\OK\\{imgName}.bmp"
  1166. : $"{path}\\{now:yyyy-MM}\\{now:MM-dd}\\NG\\{imgName}.bmp";
  1167. }
  1168. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ok_Time)
  1169. {
  1170. if (result)
  1171. Originalpath = $"{path}\\{now:yyyy-MM}\\{now:MM-dd}\\OK\\{imgName}.bmp";
  1172. else
  1173. return;
  1174. }
  1175. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ng_Time)
  1176. {
  1177. if (!result)
  1178. Originalpath = $"{path}\\{now:yyyy-MM}\\{now:MM-dd}\\NG\\{imgName}.bmp";
  1179. else
  1180. return;
  1181. }
  1182. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Formula_ProductSN_Time)
  1183. {
  1184. // 当前产品配方名(过滤非法字符)
  1185. string formulaName = _productService.GetCurrentProduct().Name;
  1186. foreach (char c in Path.GetInvalidFileNameChars())
  1187. formulaName = formulaName.Replace(c, '_');
  1188. // 产品SN(过滤非法字符)
  1189. string productSN = _productService.CurrentProductCode;
  1190. foreach (char c in Path.GetInvalidFileNameChars())
  1191. productSN = productSN.Replace(c, '_');
  1192. string resultStr = result ? "OK" : "NG";
  1193. Originalpath = $"{path}\\{now:yyyy-MM}\\{now:MM-dd}\\{formulaName}\\{productSN}\\{resultStr}\\{imgName}.bmp";
  1194. }
  1195. if (!Directory.Exists(Path.GetDirectoryName(Originalpath)))
  1196. Directory.CreateDirectory(Path.GetDirectoryName(Originalpath));
  1197. using (CogImageFileBMP _cogImageFileTool = new CogImageFileBMP())
  1198. {
  1199. _cogImageFileTool.Open(Originalpath, CogImageFileModeConstants.Write);
  1200. _cogImageFileTool.Append(image);
  1201. _cogImageFileTool.Close();
  1202. }
  1203. }
  1204. else if (saveImageModel == ProcedureSaveImageModel.Recorded)
  1205. {
  1206. string Recordedpath = $"{path}\\{now:yyyy-MM}\\{now:MM-dd}\\{imgName}.bmp";
  1207. if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_OkNG_Time)
  1208. {
  1209. Recordedpath = result
  1210. ? $"{path}\\{now:yyyy-MM}\\{now:MM-dd}\\OK\\{imgName}.bmp"
  1211. : $"{path}\\{now:yyyy-MM}\\{now:MM-dd}\\NG\\{imgName}.bmp";
  1212. }
  1213. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ok_Time)
  1214. {
  1215. if (result)
  1216. Recordedpath = $"{path}\\{now:yyyy-MM}\\{now:MM-dd}\\OK\\{imgName}.bmp";
  1217. else
  1218. return;
  1219. }
  1220. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ng_Time)
  1221. {
  1222. if (!result)
  1223. Recordedpath = $"{path}\\{now:yyyy-MM}\\{now:MM-dd}\\NG\\{imgName}.bmp";
  1224. else
  1225. return;
  1226. }
  1227. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Formula_ProductSN_Time)
  1228. {
  1229. string formulaName = _productService.GetCurrentProduct().Name;
  1230. foreach (char c in Path.GetInvalidFileNameChars())
  1231. formulaName = formulaName.Replace(c, '_');
  1232. string productSN = _productService.CurrentProductCode;
  1233. foreach (char c in Path.GetInvalidFileNameChars())
  1234. productSN = productSN.Replace(c, '_');
  1235. string resultStr = result ? "OK" : "NG";
  1236. Recordedpath = $"{path}\\{now:yyyy-MM}\\{now:MM-dd}\\{formulaName}\\{productSN}\\{resultStr}\\{imgName}.bmp";
  1237. }
  1238. if (!Directory.Exists(Path.GetDirectoryName(Recordedpath)))
  1239. Directory.CreateDirectory(Path.GetDirectoryName(Recordedpath));
  1240. if (isCompress)
  1241. {
  1242. ImageHelper.CompressImage(reimage, Recordedpath, 100);
  1243. }
  1244. else
  1245. {
  1246. reimage.Save(Recordedpath);
  1247. }
  1248. }
  1249. else if (saveImageModel == ProcedureSaveImageModel.OriginalAndRecorded)
  1250. {
  1251. string Originalpath = "";
  1252. if (is3Dmodel==true)
  1253. {
  1254. Originalpath = $"{path}\\Original\\{now:yyyy-MM}\\{now:MM-dd}\\{imgName}.idb";
  1255. }
  1256. else
  1257. {
  1258. Originalpath = $"{path}\\Original\\{now:yyyy-MM}\\{now:MM-dd}\\{imgName}.bmp";
  1259. }
  1260. string Recordedpath = $"{path}\\Recored\\{now:yyyy-MM}\\{now:MM-dd}\\{imgName}.bmp";
  1261. if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_OkNG_Time)
  1262. {
  1263. if (result)
  1264. {
  1265. Originalpath = $"{path}\\Original\\{now:yyyy-MM}\\{now:MM-dd}\\OK\\{imgName}.bmp";
  1266. Recordedpath = $"{path}\\Recored\\{now:yyyy-MM}\\{now:MM-dd}\\OK\\{imgName}.bmp";
  1267. }
  1268. else
  1269. {
  1270. Originalpath = $"{path}\\Original\\{now:yyyy-MM}\\{now:MM-dd}\\NG\\{imgName}.bmp";
  1271. Recordedpath = $"{path}\\Recored\\{now:yyyy-MM}\\{now:MM-dd}\\NG\\{imgName}.bmp";
  1272. }
  1273. }
  1274. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ok_Time)
  1275. {
  1276. if (result)
  1277. {
  1278. Originalpath = $"{path}\\Original\\{now:yyyy-MM}\\{now:MM-dd}\\OK\\{imgName}.bmp";
  1279. Recordedpath = $"{path}\\Recored\\{now:yyyy-MM}\\{now:MM-dd}\\OK\\{imgName}.bmp";
  1280. }
  1281. else
  1282. {
  1283. return;
  1284. }
  1285. }
  1286. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ng_Time)
  1287. {
  1288. if (!result)
  1289. {
  1290. Originalpath = $"{path}\\Original\\{now:yyyy-MM}\\{now:MM-dd}\\NG\\{imgName}.bmp";
  1291. Recordedpath = $"{path}\\Recored\\{now:yyyy-MM}\\{now:MM-dd}\\NG\\{imgName}.bmp";
  1292. }
  1293. else
  1294. {
  1295. return;
  1296. }
  1297. }
  1298. else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Formula_ProductSN_Time)
  1299. {
  1300. string formulaName = _productService.GetCurrentProduct().Name;
  1301. foreach (char c in Path.GetInvalidFileNameChars())
  1302. formulaName = formulaName.Replace(c, '_');
  1303. string productSN = _productService.CurrentProductCode;
  1304. if(productSN!=null )
  1305. {
  1306. foreach (char c in Path.GetInvalidFileNameChars())
  1307. productSN = productSN.Replace(c, '_');
  1308. }
  1309. string resultStr = result ? "OK" : "NG";
  1310. if (is3Dmodel == true)
  1311. {
  1312. Originalpath = $"{path}\\Original\\{now:yyyy-MM}\\{now:MM-dd}\\{formulaName}\\{productSN}\\{resultStr}\\{imgName}.idb";
  1313. //Originalpath = $"{path}\\Original\\{now:yyyy-MM}\\{now:MM-dd}\\{imgName}.idb";
  1314. }
  1315. else
  1316. {
  1317. Originalpath = $"{path}\\Original\\{now:yyyy-MM}\\{now:MM-dd}\\{formulaName}\\{productSN}\\{resultStr}\\{imgName}.bmp";
  1318. //Originalpath = $"{path}\\Original\\{now:yyyy-MM}\\{now:MM-dd}\\{imgName}.bmp";
  1319. }
  1320. Recordedpath = $"{path}\\Recored\\{now:yyyy-MM}\\{now:MM-dd}\\{formulaName}\\{productSN}\\{resultStr}\\{imgName}.bmp";
  1321. }
  1322. if (!Directory.Exists(Path.GetDirectoryName(Originalpath)))
  1323. Directory.CreateDirectory(Path.GetDirectoryName(Originalpath));
  1324. //using (CogImageFileBMP _cogImageFileTool = new CogImageFileBMP())
  1325. //{
  1326. // _cogImageFileTool.Open(Originalpath, CogImageFileModeConstants.Write);
  1327. // _cogImageFileTool.Append(image);
  1328. // _cogImageFileTool.Close();
  1329. //}
  1330. using (CogImageFile _cogImageFileTool = new CogImageFile())
  1331. {
  1332. _cogImageFileTool.Open(Originalpath, CogImageFileModeConstants.Write);
  1333. _cogImageFileTool.Append(image);
  1334. _cogImageFileTool.Close();
  1335. }
  1336. if (!Directory.Exists(Path.GetDirectoryName(Recordedpath)))
  1337. Directory.CreateDirectory(Path.GetDirectoryName(Recordedpath));
  1338. if (isCompress)
  1339. {
  1340. ImageHelper.CompressImage(reimage, Recordedpath, 100);
  1341. }
  1342. else
  1343. {
  1344. reimage.Save(Recordedpath);
  1345. }
  1346. }
  1347. }
  1348. catch (Exception ex)
  1349. {
  1350. LogHelper.WriteLogError("保存流程运行结果的图片时出错!", ex);
  1351. }
  1352. finally
  1353. {
  1354. // ======================= 【关键修复】无论是否压缩都释放Bitmap =======================
  1355. try { reimage?.Dispose(); } catch { }
  1356. }
  1357. });
  1358. }
  1359. private void ProductChanged(ProductModel product)
  1360. {
  1361. this.gridRender.Dispatcher.BeginInvoke(new Action(() =>
  1362. {
  1363. foreach (var item in vmRenders)
  1364. {
  1365. try
  1366. {
  1367. if (((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Tag != null)
  1368. {
  1369. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Image = null;
  1370. ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).StaticGraphics.Clear();
  1371. break;
  1372. }
  1373. }
  1374. catch (Exception ex)
  1375. {
  1376. LogHelper.WriteLogError(Lang.切换产品清除主页图像时出错, ex);
  1377. }
  1378. }
  1379. }));
  1380. }
  1381. }
  1382. }