2026-01-26 14:51:28 +09:00

65 lines
2.1 KiB
C#

/*
* Copyright (c) 2025 LG Electronics Inc.
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
*/
using System;
using System.Windows;
using VisionCommon;
namespace VisionUI {
/// <summary>
/// Interaction logic for MultiLineSettingWindow.xaml
/// </summary>
public partial class MultiLineSettingWindow : Window, IPatternSettingWindow, IDisposable {
public string WINDOW_TITLE => "Multi Line Finder";
private PatternAgentBase _patternAgent;
private PatternInfo _patternInfo;
private ICameraDisplay _cameraDisplay;
private FovInfo _fovInfo;
public MultiLineSettingWindow(
PatternAgentBase patternAgent, PatternInfo patternInfo, ICameraDisplay cameraDisplay, FovInfo fovInfo) {
InitializeComponent();
_patternAgent = patternAgent;
_patternInfo = patternInfo;
_cameraDisplay = cameraDisplay;
_fovInfo = fovInfo;
SetTitle();
CreateView();
}
private void CreateView() {
#if !USE_COGNEX
var multiLineSettingView = new MultiLineSettingView(_patternAgent, _patternInfo, _cameraDisplay, _fovInfo);
multiLineSettingView.DataContext = new MultiLineSettingViewModel(_patternAgent, _patternInfo, _cameraDisplay, _fovInfo);
lineSettingScrollViewer.Content = multiLineSettingView;
#endif
}
public void SetTitle() {
Title = WINDOW_TITLE;
}
public void ResetPosition() {
Left = WindowUtil.GetLeftWithRatioOnMainWindow(0.6);
Top = WindowUtil.GetTopWithRatioOnMainWindow(0.2);
}
private void Window_Closed(object sender, EventArgs e) {
Dispose();
}
public void Dispose() {
_cameraDisplay.ClearFindGraphics();
_cameraDisplay.ClearMeasureGraphics();
_cameraDisplay.ClearFindLabelNumGraphicsAll();
#if !USE_COGNEX
var view = lineSettingScrollViewer.Content as MultiLineSettingView;
view?.Dispose();
#endif
}
}
}