using Cognex.VisionPro;
using Cognex.VisionPro.ImageFile;
using log4net.Core;
using MahApps.Metro.Controls;
using Prism.Events;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Forms.Integration;
using System.Windows.Interop;
using TeamAAS_VP.Core;
using TeamAAS_VP.Enums;
using TeamAAS_VP.Events;
using TeamAAS_VP.Models;
using TeamAAS_VP.Resources.Languages;
using TeamAAS_VP.ViewModels;
using TeamAAS_VP.ViewModels.Home;
using TeamAAS_VP;
using static MaterialDesignThemes.Wpf.Theme.ToolBar;
namespace TeamAAS_VP.Views.Home
{
///
/// Interaction logic for ShowVisionRender
///
public partial class ShowVisionRender : UserControl
{
ShowVisionRenderViewModel viewModel;
Dictionary vmRenders;
Dictionary Titles;
IEventAggregator _eventAggregator;
public ShowVisionRender()
{
InitializeComponent();
vmRenders = new Dictionary();
Titles = new Dictionary();
viewModel = DataContext as ShowVisionRenderViewModel;
_eventAggregator = viewModel._eventAggregator;
viewModel.UpdateLayout += ViewModel_UpdateLayout;
_eventAggregator.GetEvent().Subscribe(UpdateRenderModuleSource);
_eventAggregator.GetEvent().Subscribe(ProductChanged);
}
private void UpdateRenderModuleSource(ShowRender render)
{
//foreach (var item in vmRenders)
//{
// if (item.Key== render.Id)
// {
// App.Current.Dispatcher.Invoke(new Action(() =>
// {
// item.Value.ModuleSource = render.ModuleSource;
// }));
// break;
// }
//}
this.gridRender.Dispatcher.BeginInvoke(new Action(() =>
{
foreach (var item in vmRenders)
{
if (((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Tag!=null && ((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Tag.ToString() == render.CameraName)
{
((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Image = render.Image;
((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).StaticGraphics.Clear();
if (render.Graphic!=null)
((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).StaticGraphics.AddList(render.Graphic, "");
if (render.Record != null)
((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Record = render.Record;
if (render.IsSaveImage)
{
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);
}
break;
}
}
/*
foreach (var item in gridRender.Children)
{
if (item is WindowsFormsHost && ((WindowsFormsHost)item).Child is Cognex.VisionPro.CogRecordDisplay)
{
if (((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Tag != null && ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Tag.ToString() == render.CameraName)
{
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Image = render.Image;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).StaticGraphics.Clear();
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).StaticGraphics.AddList(render.Graphic, "");
if (render.Record != null)
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Record = render.Record;
if (render.IsSaveImage)
{
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);
}
break;
}
}
else if (item is Grid)
{
foreach (var item1 in ((Grid)item).Children)
{
if (item1 is WindowsFormsHost && ((WindowsFormsHost)item1).Child is Cognex.VisionPro.CogRecordDisplay)
{
if (((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).Tag != null && ((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).Tag.ToString() == render.CameraName)
{
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).Image = render.Image;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).StaticGraphics.Clear();
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item1).Child).StaticGraphics.AddList(render.Graphic, "");
if (render.Record != null)
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)item).Child).Record = render.Record;
if (render.IsSaveImage)
{
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);
}
break;
}
}
}
break;
}
}*/
}));
}
Grid grid1 = new Grid();
Grid grid2 = new Grid();
Grid grid3 = new Grid();
Grid grid4 = new Grid();
Grid grid5 = new Grid();
Grid grid6 = new Grid();
Grid grid7 = new Grid();
Grid grid8 = new Grid();
private void ViewModel_UpdateLayout(System.Collections.ObjectModel.ObservableCollection obj)
{
System.Windows.Media.FontFamily font = Application.Current.Resources["DefaultFont"] as System.Windows.Media.FontFamily;
if (vmRenders.Count > 0)
{
foreach (var render in vmRenders)
{
render.Value.Dispose();
}
}
vmRenders.Clear();
gridRender.Children.Clear();
Titles.Clear();
if (obj == null) { return; }
if (obj.Count == 0) { return; }
Grid grid = new Grid();
gridRender.RowDefinitions.Clear();
gridRender.ColumnDefinitions.Clear();
System.Windows.Thickness margin = new System.Windows.Thickness(2);
switch (obj.Count)
{
case 1:
vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
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 });
gridRender.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
gridRender.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ShowGridLines = false;
gridRender.Children.Add(vmRenders[obj[0].Id]);
gridRender.Children.Add(Titles[obj[0].Id]);
Grid.SetRow(vmRenders[obj[0].Id], 1);
Grid.SetColumn(vmRenders[obj[0].Id], 0);
Grid.SetRowSpan(vmRenders[obj[0].Id], 1);
Grid.SetColumnSpan(vmRenders[obj[0].Id], 1);
Grid.SetRow(Titles[obj[0].Id], 0);
Grid.SetColumn(Titles[obj[0].Id], 0);
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[0].Id]).Child).HorizontalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[0].Id]).Child).VerticalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[0].Id]).Child).AutoFit = true;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[0].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
break;
case 2:
//增加显示界面
vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
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 });
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 });
//布局
gridRender.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
gridRender.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ShowGridLines = true;
gridRender.Children.Add(vmRenders[obj[0].Id]);
gridRender.Children.Add(vmRenders[obj[1].Id]);
gridRender.Children.Add(Titles[obj[0].Id]);
gridRender.Children.Add(Titles[obj[1].Id]);
Grid.SetRow(vmRenders[obj[0].Id], 1);
Grid.SetColumn(vmRenders[obj[0].Id], 0);
Grid.SetRow(vmRenders[obj[1].Id], 1);
Grid.SetColumn(vmRenders[obj[1].Id], 1);
Grid.SetRowSpan(vmRenders[obj[0].Id], 1);
Grid.SetColumnSpan(vmRenders[obj[0].Id], 1);
Grid.SetRow(Titles[obj[0].Id], 0);
Grid.SetColumn(Titles[obj[0].Id], 0);
Grid.SetRow(Titles[obj[1].Id], 0);
Grid.SetColumn(Titles[obj[1].Id], 1);
for (int i = 0; i < 2; i++)
{
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
}
break;
case 3:
//增加显示界面
vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].CameraName } });
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 });
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 });
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 });
//布局
gridRender.RowDefinitions.Add(new RowDefinition());
gridRender.RowDefinitions.Add(new RowDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ShowGridLines = true;
grid1 = new Grid();
grid2 = new Grid();
grid3 = new Grid();
grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
gridRender.Children.Add(grid1);
gridRender.Children.Add(grid2);
gridRender.Children.Add(grid3);
Grid.SetRow(grid1, 0);
Grid.SetColumn(grid1, 0);
Grid.SetRow(grid2, 0);
Grid.SetColumn(grid2, 1);
Grid.SetRow(grid3, 1);
Grid.SetColumn(grid3, 0);
Grid.SetColumnSpan(grid3, 2);
grid1.Children.Add(vmRenders[obj[0].Id]);
grid2.Children.Add(vmRenders[obj[1].Id]);
grid3.Children.Add(vmRenders[obj[2].Id]);
grid1.Children.Add(Titles[obj[0].Id]);
grid2.Children.Add(Titles[obj[1].Id]);
grid3.Children.Add(Titles[obj[2].Id]);
Grid.SetRow(vmRenders[obj[0].Id], 1);
Grid.SetColumn(vmRenders[obj[0].Id], 0);
Grid.SetRow(vmRenders[obj[1].Id], 1);
Grid.SetColumn(vmRenders[obj[1].Id], 0);
Grid.SetRow(vmRenders[obj[2].Id], 1);
Grid.SetColumn(vmRenders[obj[2].Id], 0);
Grid.SetRow(Titles[obj[0].Id], 0);
Grid.SetColumn(Titles[obj[0].Id], 0);
Grid.SetRow(Titles[obj[1].Id], 0);
Grid.SetColumn(Titles[obj[1].Id], 0);
Grid.SetRow(Titles[obj[2].Id], 0);
Grid.SetColumn(Titles[obj[2].Id], 0);
for (int i = 0; i < 3; i++)
{
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
}
break;
case 4:
//增加显示界面
vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].CameraName } });
vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].CameraName } });
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 });
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 });
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 });
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 });
//布局
gridRender.RowDefinitions.Add(new RowDefinition());
gridRender.RowDefinitions.Add(new RowDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ShowGridLines = true;
grid1 = new Grid();
grid2 = new Grid();
grid3 = new Grid();
grid4 = new Grid();
grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
gridRender.Children.Add(grid1);
gridRender.Children.Add(grid2);
gridRender.Children.Add(grid3);
gridRender.Children.Add(grid4);
Grid.SetRow(grid1, 0);
Grid.SetColumn(grid1, 0);
Grid.SetRow(grid2, 0);
Grid.SetColumn(grid2, 1);
Grid.SetRow(grid3, 1);
Grid.SetColumn(grid3, 0);
Grid.SetRow(grid4, 1);
Grid.SetColumn(grid4, 1);
grid1.Children.Add(vmRenders[obj[0].Id]);
grid2.Children.Add(vmRenders[obj[1].Id]);
grid3.Children.Add(vmRenders[obj[2].Id]);
grid4.Children.Add(vmRenders[obj[3].Id]);
grid1.Children.Add(Titles[obj[0].Id]);
grid2.Children.Add(Titles[obj[1].Id]);
grid3.Children.Add(Titles[obj[2].Id]);
grid4.Children.Add(Titles[obj[3].Id]);
Grid.SetRow(vmRenders[obj[0].Id], 1);
Grid.SetColumn(vmRenders[obj[0].Id], 0);
Grid.SetRow(vmRenders[obj[1].Id], 1);
Grid.SetColumn(vmRenders[obj[1].Id], 0);
Grid.SetRow(vmRenders[obj[2].Id], 1);
Grid.SetColumn(vmRenders[obj[2].Id], 0);
Grid.SetRow(vmRenders[obj[3].Id], 1);
Grid.SetColumn(vmRenders[obj[3].Id], 0);
//Grid.SetRowSpan(vmRenders[obj[2].Id], 1);
//Grid.SetColumnSpan(vmRenders[obj[2].Id], 0);
Grid.SetRow(Titles[obj[0].Id], 0);
Grid.SetColumn(Titles[obj[0].Id], 0);
Grid.SetRow(Titles[obj[1].Id], 0);
Grid.SetColumn(Titles[obj[1].Id], 0);
Grid.SetRow(Titles[obj[2].Id], 0);
Grid.SetColumn(Titles[obj[2].Id], 0);
Grid.SetRow(Titles[obj[3].Id], 0);
Grid.SetColumn(Titles[obj[3].Id], 0);
for (int i = 0; i < 4; i++)
{
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
}
break;
case 5:
//增加显示界面
vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].CameraName } });
vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].CameraName } });
vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].CameraName } });
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});
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 });
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 });
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 });
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 });
//布局
gridRender.RowDefinitions.Add(new RowDefinition());
gridRender.RowDefinitions.Add(new RowDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ShowGridLines = true;
grid1 = new Grid() { Background= System.Windows.Media.Brushes.White };
grid2 = new Grid() { Background = System.Windows.Media.Brushes.White };
grid3 = new Grid() { Background = System.Windows.Media.Brushes.White };
grid4 = new Grid() { Background = System.Windows.Media.Brushes.White };
grid5 = new Grid() { Background = System.Windows.Media.Brushes.White };
grid6 = new Grid() { Background = System.Windows.Media.Brushes.White };
grid6.ShowGridLines = true;
grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid6.ColumnDefinitions.Add(new ColumnDefinition());
grid6.ColumnDefinitions.Add(new ColumnDefinition());
grid6.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.Children.Add(grid1);
gridRender.Children.Add(grid2);
gridRender.Children.Add(grid6);
grid6.Children.Add(grid3);
grid6.Children.Add(grid4);
grid6.Children.Add(grid5);
grid1.Children.Add(vmRenders[obj[0].Id]);
grid2.Children.Add(vmRenders[obj[1].Id]);
grid3.Children.Add(vmRenders[obj[2].Id]);
grid4.Children.Add(vmRenders[obj[3].Id]);
grid5.Children.Add(vmRenders[obj[4].Id]);
grid1.Children.Add(Titles[obj[0].Id]);
grid2.Children.Add(Titles[obj[1].Id]);
grid3.Children.Add(Titles[obj[2].Id]);
grid4.Children.Add(Titles[obj[3].Id]);
grid5.Children.Add(Titles[obj[4].Id]);
Grid.SetRow(grid6, 1);
Grid.SetColumn(grid6, 0);
Grid.SetColumnSpan(grid6, 2);
Grid.SetRow(grid1, 0);
Grid.SetColumn(grid1, 0);
Grid.SetRow(grid2, 0);
Grid.SetColumn(grid2, 1);
Grid.SetRow(grid3, 0);
Grid.SetColumn(grid3, 0);
Grid.SetRow(grid4, 0);
Grid.SetColumn(grid4, 1);
Grid.SetRow(grid5, 0);
Grid.SetColumn(grid5, 2);
Grid.SetRow(Titles[obj[0].Id], 0);
Grid.SetColumn(Titles[obj[0].Id], 0);
Grid.SetRow(Titles[obj[1].Id], 0);
Grid.SetColumn(Titles[obj[1].Id], 0);
Grid.SetRow(Titles[obj[2].Id], 0);
Grid.SetColumn(Titles[obj[2].Id], 0);
Grid.SetRow(Titles[obj[3].Id], 0);
Grid.SetColumn(Titles[obj[3].Id], 0);
Grid.SetRow(Titles[obj[4].Id], 0);
Grid.SetColumn(Titles[obj[4].Id], 0);
Grid.SetRow(vmRenders[obj[0].Id], 1);
Grid.SetColumn(vmRenders[obj[0].Id], 0);
Grid.SetRow(vmRenders[obj[1].Id], 1);
Grid.SetColumn(vmRenders[obj[1].Id], 0);
Grid.SetRow(vmRenders[obj[2].Id], 1);
Grid.SetColumn(vmRenders[obj[2].Id], 0);
Grid.SetRow(vmRenders[obj[3].Id], 1);
Grid.SetColumn(vmRenders[obj[3].Id], 0);
Grid.SetRow(vmRenders[obj[4].Id], 1);
Grid.SetColumn(vmRenders[obj[4].Id], 0);
for (int i = 0; i < 5; i++)
{
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
}
break;
case 6:
//增加显示界面
vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].CameraName } });
vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].CameraName } });
vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].CameraName } });
vmRenders.Add(obj[5].Id, new WindowsFormsHost() { Tag = obj[5].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[5].CameraName } });
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 });
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 });
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 });
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 });
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 });
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 });
//布局
gridRender.RowDefinitions.Add(new RowDefinition());
gridRender.RowDefinitions.Add(new RowDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ShowGridLines = true;
grid1 = new Grid();
grid2 = new Grid();
grid3 = new Grid();
grid4 = new Grid();
grid5 = new Grid();
grid6 = new Grid();
grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
gridRender.Children.Add(grid1);
gridRender.Children.Add(grid2);
gridRender.Children.Add(grid3);
gridRender.Children.Add(grid4);
gridRender.Children.Add(grid5);
gridRender.Children.Add(grid6);
Grid.SetRow(grid1, 0);
Grid.SetColumn(grid1, 0);
Grid.SetRow(grid2, 0);
Grid.SetColumn(grid2, 1);
Grid.SetRow(grid3, 0);
Grid.SetColumn(grid3, 2);
Grid.SetRow(grid4, 1);
Grid.SetColumn(grid4, 0);
Grid.SetRow(grid5, 1);
Grid.SetColumn(grid5, 1);
Grid.SetRow(grid6, 1);
Grid.SetColumn(grid6, 2);
grid1.Children.Add(vmRenders[obj[0].Id]);
grid2.Children.Add(vmRenders[obj[1].Id]);
grid3.Children.Add(vmRenders[obj[2].Id]);
grid4.Children.Add(vmRenders[obj[3].Id]);
grid5.Children.Add(vmRenders[obj[4].Id]);
grid6.Children.Add(vmRenders[obj[5].Id]);
grid1.Children.Add(Titles[obj[0].Id]);
grid2.Children.Add(Titles[obj[1].Id]);
grid3.Children.Add(Titles[obj[2].Id]);
grid4.Children.Add(Titles[obj[3].Id]);
grid5.Children.Add(Titles[obj[4].Id]);
grid6.Children.Add(Titles[obj[5].Id]);
Grid.SetRow(Titles[obj[0].Id], 0);
Grid.SetColumn(Titles[obj[0].Id], 0);
Grid.SetRow(Titles[obj[1].Id], 0);
Grid.SetColumn(Titles[obj[1].Id], 0);
Grid.SetRow(Titles[obj[2].Id], 0);
Grid.SetColumn(Titles[obj[2].Id], 0);
Grid.SetRow(Titles[obj[3].Id], 0);
Grid.SetColumn(Titles[obj[3].Id], 0);
Grid.SetRow(Titles[obj[4].Id], 0);
Grid.SetColumn(Titles[obj[4].Id], 0);
Grid.SetRow(Titles[obj[5].Id], 0);
Grid.SetColumn(Titles[obj[5].Id], 0);
Grid.SetRow(vmRenders[obj[0].Id], 1);
Grid.SetColumn(vmRenders[obj[0].Id], 0);
Grid.SetRow(vmRenders[obj[1].Id], 1);
Grid.SetColumn(vmRenders[obj[1].Id], 0);
Grid.SetRow(vmRenders[obj[2].Id], 1);
Grid.SetColumn(vmRenders[obj[2].Id], 0);
Grid.SetRow(vmRenders[obj[3].Id], 1);
Grid.SetColumn(vmRenders[obj[3].Id], 0);
Grid.SetRow(vmRenders[obj[4].Id], 1);
Grid.SetColumn(vmRenders[obj[4].Id], 0);
Grid.SetRow(vmRenders[obj[5].Id], 1);
Grid.SetColumn(vmRenders[obj[5].Id], 0);
for (int i = 0; i < 6; i++)
{
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
}
break;
case 7:
//增加显示界面
vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].CameraName } });
vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].CameraName } });
vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].CameraName } });
vmRenders.Add(obj[5].Id, new WindowsFormsHost() { Tag = obj[5].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[5].CameraName } });
vmRenders.Add(obj[6].Id, new WindowsFormsHost() { Tag = obj[6].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[6].CameraName } });
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 });
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 });
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 });
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 });
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 });
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 });
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 });
//布局
gridRender.RowDefinitions.Add(new RowDefinition());
gridRender.RowDefinitions.Add(new RowDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ShowGridLines = true;
grid1 = new Grid();
grid2 = new Grid();
grid3 = new Grid();
grid4 = new Grid();
grid5 = new Grid();
grid6 = new Grid();
grid7 = new Grid();
grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
gridRender.Children.Add(grid1);
gridRender.Children.Add(grid2);
gridRender.Children.Add(grid3);
gridRender.Children.Add(grid4);
gridRender.Children.Add(grid5);
gridRender.Children.Add(grid6);
gridRender.Children.Add(grid7);
Grid.SetRow(grid1, 0);
Grid.SetColumn(grid1, 0);
Grid.SetRow(grid2, 0);
Grid.SetColumn(grid2, 1);
Grid.SetRow(grid3, 0);
Grid.SetColumn(grid3, 2);
Grid.SetRow(grid4, 0);
Grid.SetColumn(grid4, 3);
Grid.SetRow(grid5, 1);
Grid.SetColumn(grid5, 0);
Grid.SetRow(grid6, 1);
Grid.SetColumn(grid6, 1);
Grid.SetRow(grid7, 1);
Grid.SetColumn(grid7, 2);
grid1.Children.Add(vmRenders[obj[0].Id]);
grid2.Children.Add(vmRenders[obj[1].Id]);
grid3.Children.Add(vmRenders[obj[2].Id]);
grid4.Children.Add(vmRenders[obj[3].Id]);
grid5.Children.Add(vmRenders[obj[4].Id]);
grid6.Children.Add(vmRenders[obj[5].Id]);
grid7.Children.Add(vmRenders[obj[6].Id]);
grid1.Children.Add(Titles[obj[0].Id]);
grid2.Children.Add(Titles[obj[1].Id]);
grid3.Children.Add(Titles[obj[2].Id]);
grid4.Children.Add(Titles[obj[3].Id]);
grid5.Children.Add(Titles[obj[4].Id]);
grid6.Children.Add(Titles[obj[5].Id]);
grid7.Children.Add(Titles[obj[6].Id]);
Grid.SetRow(Titles[obj[0].Id], 0);
Grid.SetColumn(Titles[obj[0].Id], 0);
Grid.SetRow(Titles[obj[1].Id], 0);
Grid.SetColumn(Titles[obj[1].Id], 0);
Grid.SetRow(Titles[obj[2].Id], 0);
Grid.SetColumn(Titles[obj[2].Id], 0);
Grid.SetRow(Titles[obj[3].Id], 0);
Grid.SetColumn(Titles[obj[3].Id], 0);
Grid.SetRow(Titles[obj[4].Id], 0);
Grid.SetColumn(Titles[obj[4].Id], 0);
Grid.SetRow(Titles[obj[5].Id], 0);
Grid.SetColumn(Titles[obj[5].Id], 0);
Grid.SetRow(Titles[obj[6].Id], 0);
Grid.SetColumn(Titles[obj[6].Id], 0);
Grid.SetRow(vmRenders[obj[0].Id], 1);
Grid.SetColumn(vmRenders[obj[0].Id], 0);
Grid.SetRow(vmRenders[obj[1].Id], 1);
Grid.SetColumn(vmRenders[obj[1].Id], 0);
Grid.SetRow(vmRenders[obj[2].Id], 1);
Grid.SetColumn(vmRenders[obj[2].Id], 0);
Grid.SetRow(vmRenders[obj[3].Id], 1);
Grid.SetColumn(vmRenders[obj[3].Id], 0);
Grid.SetRow(vmRenders[obj[4].Id], 1);
Grid.SetColumn(vmRenders[obj[4].Id], 0);
Grid.SetRow(vmRenders[obj[5].Id], 1);
Grid.SetColumn(vmRenders[obj[5].Id], 0);
Grid.SetRow(vmRenders[obj[6].Id], 1);
Grid.SetColumn(vmRenders[obj[6].Id], 0);
for (int i = 0; i < 7; i++)
{
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
}
break;
case 8:
//增加显示界面
vmRenders.Add(obj[0].Id, new WindowsFormsHost() { Tag = obj[0].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[0].CameraName } });
vmRenders.Add(obj[1].Id, new WindowsFormsHost() { Tag = obj[1].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[1].CameraName } });
vmRenders.Add(obj[2].Id, new WindowsFormsHost() { Tag = obj[2].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[2].CameraName } });
vmRenders.Add(obj[3].Id, new WindowsFormsHost() { Tag = obj[3].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[3].CameraName } });
vmRenders.Add(obj[4].Id, new WindowsFormsHost() { Tag = obj[4].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[4].CameraName } });
vmRenders.Add(obj[5].Id, new WindowsFormsHost() { Tag = obj[5].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[5].CameraName } });
vmRenders.Add(obj[6].Id, new WindowsFormsHost() { Tag = obj[6].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[6].CameraName } });
vmRenders.Add(obj[7].Id, new WindowsFormsHost() { Tag = obj[6].CameraName, Child = new Cognex.VisionPro.CogRecordDisplay() { Tag = obj[7].CameraName } });
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 });
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 });
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 });
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 });
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 });
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 });
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 });
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 });
//布局
gridRender.RowDefinitions.Add(new RowDefinition());
gridRender.RowDefinitions.Add(new RowDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ColumnDefinitions.Add(new ColumnDefinition());
gridRender.ShowGridLines = true;
grid1 = new Grid();
grid2 = new Grid();
grid3 = new Grid();
grid4 = new Grid();
grid5 = new Grid();
grid6 = new Grid();
grid7 = new Grid();
grid8 = new Grid();
grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid1.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid2.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid3.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid4.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid5.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid6.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid7.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
grid8.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Auto) });
grid8.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
gridRender.Children.Add(grid1);
gridRender.Children.Add(grid2);
gridRender.Children.Add(grid3);
gridRender.Children.Add(grid4);
gridRender.Children.Add(grid5);
gridRender.Children.Add(grid6);
gridRender.Children.Add(grid7);
gridRender.Children.Add(grid8);
Grid.SetRow(grid1, 0);
Grid.SetColumn(grid1, 0);
Grid.SetRow(grid2, 0);
Grid.SetColumn(grid2, 1);
Grid.SetRow(grid3, 0);
Grid.SetColumn(grid3, 2);
Grid.SetRow(grid4, 0);
Grid.SetColumn(grid4, 3);
Grid.SetRow(grid5, 1);
Grid.SetColumn(grid5, 0);
Grid.SetRow(grid6, 1);
Grid.SetColumn(grid6, 1);
Grid.SetRow(grid7, 1);
Grid.SetColumn(grid7, 2);
Grid.SetRow(grid8, 1);
Grid.SetColumn(grid8, 3);
grid1.Children.Add(vmRenders[obj[0].Id]);
grid2.Children.Add(vmRenders[obj[1].Id]);
grid3.Children.Add(vmRenders[obj[2].Id]);
grid4.Children.Add(vmRenders[obj[3].Id]);
grid5.Children.Add(vmRenders[obj[4].Id]);
grid6.Children.Add(vmRenders[obj[5].Id]);
grid7.Children.Add(vmRenders[obj[6].Id]);
grid8.Children.Add(vmRenders[obj[7].Id]);
grid1.Children.Add(Titles[obj[0].Id]);
grid2.Children.Add(Titles[obj[1].Id]);
grid3.Children.Add(Titles[obj[2].Id]);
grid4.Children.Add(Titles[obj[3].Id]);
grid5.Children.Add(Titles[obj[4].Id]);
grid6.Children.Add(Titles[obj[5].Id]);
grid7.Children.Add(Titles[obj[6].Id]);
grid8.Children.Add(Titles[obj[7].Id]);
Grid.SetRow(Titles[obj[0].Id], 0);
Grid.SetColumn(Titles[obj[0].Id], 0);
Grid.SetRow(Titles[obj[1].Id], 0);
Grid.SetColumn(Titles[obj[1].Id], 0);
Grid.SetRow(Titles[obj[2].Id], 0);
Grid.SetColumn(Titles[obj[2].Id], 0);
Grid.SetRow(Titles[obj[3].Id], 0);
Grid.SetColumn(Titles[obj[3].Id], 0);
Grid.SetRow(Titles[obj[4].Id], 0);
Grid.SetColumn(Titles[obj[4].Id], 0);
Grid.SetRow(Titles[obj[5].Id], 0);
Grid.SetColumn(Titles[obj[5].Id], 0);
Grid.SetRow(Titles[obj[6].Id], 0);
Grid.SetColumn(Titles[obj[6].Id], 0);
Grid.SetRow(Titles[obj[7].Id], 0);
Grid.SetColumn(Titles[obj[7].Id], 0);
Grid.SetRow(vmRenders[obj[0].Id], 1);
Grid.SetColumn(vmRenders[obj[0].Id], 0);
Grid.SetRow(vmRenders[obj[1].Id], 1);
Grid.SetColumn(vmRenders[obj[1].Id], 0);
Grid.SetRow(vmRenders[obj[2].Id], 1);
Grid.SetColumn(vmRenders[obj[2].Id], 0);
Grid.SetRow(vmRenders[obj[3].Id], 1);
Grid.SetColumn(vmRenders[obj[3].Id], 0);
Grid.SetRow(vmRenders[obj[4].Id], 1);
Grid.SetColumn(vmRenders[obj[4].Id], 0);
Grid.SetRow(vmRenders[obj[5].Id], 1);
Grid.SetColumn(vmRenders[obj[5].Id], 0);
Grid.SetRow(vmRenders[obj[6].Id], 1);
Grid.SetColumn(vmRenders[obj[6].Id], 0);
Grid.SetRow(vmRenders[obj[7].Id], 1);
Grid.SetColumn(vmRenders[obj[7].Id], 0);
for (int i = 0; i < 8; i++)
{
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).HorizontalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).VerticalScrollBar = false;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).AutoFit = true;
((Cognex.VisionPro.CogRecordDisplay)((WindowsFormsHost)vmRenders[obj[i].Id]).Child).BackColor = System.Drawing.SystemColors.ActiveCaption;
}
break;
default:
break;
}
}
///
/// 保存图像
///
/// 要保存图像的模式
/// 图像保存路径类型
/// 保存图像的文件夹路径
/// 原图像
/// 渲染图像
/// 拍照结果
/// 是否压缩
private void SaveImage(ProcedureSaveImageModel saveImageModel, ProcedureSaveImagePathModel saveImagePathModel, string path, ICogImage image, Bitmap reimage, bool result, bool isCompress)
{
if (string.IsNullOrEmpty(path) || string.IsNullOrWhiteSpace(path) || !Path.IsPathRooted(path))
{
_eventAggregator.GetEvent().Publish(new Models.MessageStruct() { Message = "保存图像路径为无效的路径!", level = MessageLevel.Alarm });
return;
}
Task.Run(() =>
{
try
{
DateTime now = DateTime.Now;
if (saveImageModel == ProcedureSaveImageModel.Original)
{
string Originalpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_OkNG_Time)
{
if (result)
{
Originalpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
}
else
{
Originalpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
}
}
else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ok_Time)
{
if (result)
{
Originalpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
}
else
{
return;
}
}
else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ng_Time)
{
if (!result)
{
Originalpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
}
else
{
return;
}
}
if (!Directory.Exists(Path.GetDirectoryName(Originalpath))) //判断文件夹是否存在
{
Directory.CreateDirectory(Path.GetDirectoryName(Originalpath)); //创建文件夹
}
using (CogImageFileBMP _cogImageFileTool = new CogImageFileBMP())
{
_cogImageFileTool.Open(Originalpath, CogImageFileModeConstants.Write);
_cogImageFileTool.Append(image);
_cogImageFileTool.Close();
}
}
else if (saveImageModel == ProcedureSaveImageModel.Recorded)
{
string Recordedpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_OkNG_Time)
{
if (result)
{
Recordedpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
}
else
{
Recordedpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
}
}
else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ok_Time)
{
if (result)
{
Recordedpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
}
else
{
return;
}
}
else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ng_Time)
{
if (!result)
{
Recordedpath = $"{path}\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
}
else
{
return;
}
}
if (!Directory.Exists(Path.GetDirectoryName(Recordedpath))) //判断文件夹是否存在
{
Directory.CreateDirectory(Path.GetDirectoryName(Recordedpath)); //创建文件夹
}
if (isCompress)
{
ImageHelper.CompressImage(reimage, Recordedpath, 100);
}
else
{
reimage.Save(Recordedpath);
reimage.Dispose();
}
}
else if (saveImageModel == ProcedureSaveImageModel.OriginalAndRecorded)
{
string Originalpath = $"{path}\\Original\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
string Recordedpath = $"{path}\\Recored\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_OkNG_Time)
{
if (result)
{
Originalpath = $"{path}\\Original\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
Recordedpath = $"{path}\\Recored\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
}
else
{
Originalpath = $"{path}\\Original\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
Recordedpath = $"{path}\\Recored\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
}
}
else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ok_Time)
{
if (result)
{
Originalpath = $"{path}\\Original\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
Recordedpath = $"{path}\\Recored\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\OK\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
}
else
{
return;
}
}
else if (saveImagePathModel == ProcedureSaveImagePathModel.Month_Day_Ng_Time)
{
if (!result)
{
Originalpath = $"{path}\\Original\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
Recordedpath = $"{path}\\Recored\\{now.ToString("yyyy-MM")}\\{now.ToString("MM-dd")}\\NG\\{now.ToString("yyyy-MM-dd HH_mm_ss")}.bmp";
}
else
{
return;
}
}
if (!Directory.Exists(Path.GetDirectoryName(Originalpath))) //判断文件夹是否存在
{
Directory.CreateDirectory(Path.GetDirectoryName(Originalpath)); //创建文件夹
}
using (CogImageFileBMP _cogImageFileTool = new CogImageFileBMP())
{
_cogImageFileTool.Open(Originalpath, CogImageFileModeConstants.Write);
_cogImageFileTool.Append(image);
_cogImageFileTool.Close();
}
if (!Directory.Exists(Path.GetDirectoryName(Recordedpath))) //判断文件夹是否存在
{
Directory.CreateDirectory(Path.GetDirectoryName(Recordedpath)); //创建文件夹
}
if (isCompress)
{
ImageHelper.CompressImage(reimage, Recordedpath, 100);
}
else
{
reimage.Save(Recordedpath);
reimage.Dispose();
}
}
}
catch (Exception ex)
{
LogHelper.WriteLogError("保存流程运行结果的图片时出错!", ex);
}
});
}
private void ProductChanged(ProductModel product)
{
this.gridRender.Dispatcher.BeginInvoke(new Action(() =>
{
foreach (var item in vmRenders)
{
try
{
if (((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Tag != null)
{
((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).Image = null;
((Cognex.VisionPro.CogRecordDisplay)item.Value.Child).StaticGraphics.Clear();
break;
}
}
catch (Exception ex)
{
LogHelper.WriteLogError(Lang.切换产品清除主页图像时出错, ex);
}
}
}));
}
}
}