2026-03-30 17:09:29 +09:00

103 lines
3.7 KiB
C#

using AuroraUIComponent.Util;
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 static WeldingCommon.Views.UCCameraPixelResolutionViewModel;
namespace WeldingCommon.Views
{
/// <summary>
/// Interaction logic for UCCameraPixelResolution.xaml
/// </summary>
public partial class UCCameraPixelResolution : UserControl
{
private UCCameraPixelResolutionViewModel _ViewModel;
public UCCameraPixelResolution(UCCameraPixelResolutionViewModel viewModel)
{
InitializeComponent();
_ViewModel = viewModel;
DataContext = _ViewModel;
}
#region Grid VisionCrossLineCoordinateList
private void GridEditorVisionCrossLineCoordinateList_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
int nRow = GridEditorVisionCrossLineCoordinateList.SelectedIndex;
_ViewModel.ReDrawIntersections(nRow);
}
private void GridEditorVisionCrossLineCoordinateList_RowDeleteClick(object sender, RoutedEventArgs e)
{
int nRow = GridEditorVisionCrossLineCoordinateList.SelectedIndex;
_ViewModel.DataGridItemDelete(nRow);
}
private void PasteCommand_Executed_VisionCrossLineCoordinateList(object sender, ExecutedRoutedEventArgs e)
{
if (GridEditorVisionCrossLineCoordinateList.PasteFromClipboard(null)) {
GridEditorVisionCrossLineCoordinateList.CommitEdit();
GridEditorVisionCrossLineCoordinateList.Items.Refresh();
}
}
private void GridEditorVisionCrossLineCoordinateList_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
{
if (_ViewModel != null) {
foreach (var item in e.RemovedCells) {
if (item.Item is CrossCoordinate) {
_ViewModel.SelectedVisionCrossLineCoordinateList.Remove(item.Item as CrossCoordinate);
}
}
foreach (var item in e.AddedCells) {
if (item.Item is CrossCoordinate) {
var newItem = item.Item as CrossCoordinate;
if (!_ViewModel.SelectedVisionCrossLineCoordinateList.Contains(newItem)) {
_ViewModel.SelectedVisionCrossLineCoordinateList.Add(newItem);
}
}
}
}
}
private void GridEditorVisionCrossLineCoordinateList_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (!IsVisible) {
_ViewModel.SelectedVisionCrossLineCoordinateList.Clear();
GridEditorVisionCrossLineCoordinateList.UnselectAllCells();
} else {
}
}
private void GridEditorVisionCrossLineCoordinateList_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Escape) {
if (sender is DataGrid dg) {
dg.SelectedItem = null;
}
if (sender is ListBox lb) {
lb.SelectedItem = null;
}
} else if (e.Key == Key.Delete) {
int nRow = GridEditorVisionCrossLineCoordinateList.SelectedIndex;
_ViewModel.DataGridItemDelete(nRow);
}
}
#endregion
}
}