75 lines
2.8 KiB
C#
75 lines
2.8 KiB
C#
using MilCommon;
|
|
using MilPattern;
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using VisionCommon;
|
|
|
|
namespace MilUI {
|
|
/// <summary>
|
|
/// Interaction logic for ShapeSettingWindow.xaml
|
|
/// </summary>
|
|
public partial class ShapeSettingWindow : Window, IPatternSettingWindow {
|
|
public string WINDOW_TITLE => "Shape Setting";
|
|
|
|
public ShapeSettingWindow(
|
|
ShapeModelFinderTrainParam trainParam,
|
|
CameraDisplay cameraDisplay) {
|
|
InitializeComponent();
|
|
SetTitle();
|
|
SetChildView(trainParam, cameraDisplay);
|
|
}
|
|
public void SetTitle() {
|
|
Title = WINDOW_TITLE;
|
|
}
|
|
|
|
private void SetChildView(
|
|
ShapeModelFinderTrainParam trainParam, CameraDisplay cameraDisplay) {
|
|
var childView = CreateChildView(trainParam, cameraDisplay);
|
|
gridShapeSettingWindow.Children.Add(childView);
|
|
}
|
|
|
|
private UserControl CreateChildView(
|
|
ShapeModelFinderTrainParam trainParam, CameraDisplay cameraDisplay) {
|
|
switch (trainParam.ModelType) {
|
|
default:
|
|
case eModelType.Circle:
|
|
return new CircleSettingView() {
|
|
DataContext = new CircleSettingViewModel(trainParam, cameraDisplay, this)
|
|
};
|
|
case eModelType.Square:
|
|
return new SquareSettingView() {
|
|
DataContext = new SquareSettingViewModel(trainParam, cameraDisplay, this)
|
|
};
|
|
case eModelType.Diamond:
|
|
case eModelType.Ellipse:
|
|
case eModelType.Rectangle:
|
|
case eModelType.Triangle:
|
|
return new WidthHeightSettingView() {
|
|
DataContext = new WidthHeightSettingViewModel(trainParam, cameraDisplay, this)
|
|
};
|
|
case eModelType.Cross:
|
|
return new CrossSettingView() {
|
|
DataContext = new CrossSettingViewModel(trainParam, cameraDisplay, this)
|
|
};
|
|
case eModelType.Ring:
|
|
return new RingSettingView() {
|
|
DataContext = new RingSettingViewModel(trainParam, cameraDisplay, this)
|
|
};
|
|
}
|
|
}
|
|
|
|
public void ResetPosition() {
|
|
Left = WindowUtil.GetLeftWithRatioOnMainWindow(0.55);
|
|
Top = WindowUtil.GetTopWithRatioOnMainWindow(0.15);
|
|
}
|
|
|
|
protected override void OnClosing(CancelEventArgs e) {
|
|
if (0 < gridShapeSettingWindow.Children.Count) {
|
|
((IDisposable)gridShapeSettingWindow.Children[0]).Dispose();
|
|
}
|
|
}
|
|
}
|
|
}
|