using Cognex.VisionPro; using Cognex.VisionPro.Dimensioning; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using TeamAAS_VP.ViewModels.Calibration; namespace TeamAAS_VP.Views.Calibration { /// /// CalibTool.xaml 的交互逻辑 /// public partial class CalibTool : UserControl { CalibToolViewModel VM; public CalibTool() { InitializeComponent(); VM = DataContext as CalibToolViewModel; VM.PropertyChanged += VM_PropertyChanged; this.display.VerticalScrollBar = false; this.display.HorizontalScrollBar = false; this.display.AutoFit = true; this.display.BackColor = System.Drawing.SystemColors.ActiveCaption; } private int _imageWidth; private int _imageHeight; private void VM_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { try { if (e.PropertyName == "Image") { this.display.Image = VM.Image; //图像中心点坐标 _imageWidth = this.display.Image.Width; _imageHeight = this.display.Image.Height; } else if (e.PropertyName == "Graphic") { this.display.StaticGraphics.Clear(); CogGraphicCollection graphic = new CogGraphicCollection(); CogCreateLineTool line1 = new CogCreateLineTool(); CogCreateLineTool line2 = new CogCreateLineTool(); line1.InputImage = this.display.Image; line2.InputImage = this.display.Image; line1.Line.X = _imageWidth / 2; line1.Line.Y = _imageHeight / 2; line1.Line.Rotation = 0; line2.Line.X = _imageWidth / 2; line2.Line.Y = _imageHeight / 2; line2.Line.Rotation = Math.PI / 180 * 90; line1.Run(); line2.Run(); graphic.Add(line1.GetOutputLine()); graphic.Add(line2.GetOutputLine()); this.display.StaticGraphics.Clear(); this.display.StaticGraphics.AddList(graphic, ""); if (VM.Graphic != null) { this.display.StaticGraphics.AddList(VM.Graphic, ""); } } } catch (Exception) { } } } }