CalibTool.xaml.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using Cognex.VisionPro;
  2. using Cognex.VisionPro.Dimensioning;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Data;
  11. using System.Windows.Documents;
  12. using System.Windows.Input;
  13. using System.Windows.Media;
  14. using System.Windows.Media.Imaging;
  15. using System.Windows.Navigation;
  16. using System.Windows.Shapes;
  17. using TeamAAS_VP.ViewModels.Calibration;
  18. namespace TeamAAS_VP.Views.Calibration
  19. {
  20. /// <summary>
  21. /// CalibTool.xaml 的交互逻辑
  22. /// </summary>
  23. public partial class CalibTool : UserControl
  24. {
  25. CalibToolViewModel VM;
  26. public CalibTool()
  27. {
  28. InitializeComponent();
  29. VM = DataContext as CalibToolViewModel;
  30. VM.PropertyChanged += VM_PropertyChanged;
  31. this.display.VerticalScrollBar = false;
  32. this.display.HorizontalScrollBar = false;
  33. this.display.AutoFit = true;
  34. this.display.BackColor = System.Drawing.SystemColors.ActiveCaption;
  35. }
  36. private int _imageWidth;
  37. private int _imageHeight;
  38. private void VM_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
  39. {
  40. try
  41. {
  42. if (e.PropertyName == "Image")
  43. {
  44. this.display.Image = VM.Image;
  45. //图像中心点坐标
  46. _imageWidth = this.display.Image.Width;
  47. _imageHeight = this.display.Image.Height;
  48. }
  49. else if (e.PropertyName == "Graphic")
  50. {
  51. this.display.StaticGraphics.Clear();
  52. CogGraphicCollection graphic = new CogGraphicCollection();
  53. CogCreateLineTool line1 = new CogCreateLineTool();
  54. CogCreateLineTool line2 = new CogCreateLineTool();
  55. line1.InputImage = this.display.Image;
  56. line2.InputImage = this.display.Image;
  57. line1.Line.X = _imageWidth / 2;
  58. line1.Line.Y = _imageHeight / 2;
  59. line1.Line.Rotation = 0;
  60. line2.Line.X = _imageWidth / 2;
  61. line2.Line.Y = _imageHeight / 2;
  62. line2.Line.Rotation = Math.PI / 180 * 90;
  63. line1.Run();
  64. line2.Run();
  65. graphic.Add(line1.GetOutputLine());
  66. graphic.Add(line2.GetOutputLine());
  67. this.display.StaticGraphics.Clear();
  68. this.display.StaticGraphics.AddList(graphic, "");
  69. if (VM.Graphic != null)
  70. {
  71. this.display.StaticGraphics.AddList(VM.Graphic, "");
  72. }
  73. }
  74. }
  75. catch (Exception)
  76. {
  77. }
  78. }
  79. }
  80. }