private void CreateIndexingFrames() { List <int> inputCsvIndexes = null; bool tryParse = int.TryParse(DifferenceTextBox.Text, out int offset); var sortedFrameRects = gBlueFrameImage.GetSortedRects(ParsingMode.Frame, tryParse ? offset : 0); gIndexingFrameModels.Clear(); if (gInputCsvData != null) { inputCsvIndexes = new List <int>(gInputCsvData.GetOriginOrderedIndexes()); } if (inputCsvIndexes != null && sortedFrameRects.Count != inputCsvIndexes.Count) { StatusTextBlock.Text = "Warning: PNG:" + sortedFrameRects.Count + "個, CSV:" + inputCsvIndexes.Count + "個,燈數不相等!"; //return; } for (int i = 0; i < sortedFrameRects.Count; i++) { IndexingFrameModel model = new IndexingFrameModel() { Left = sortedFrameRects[i].X, Top = sortedFrameRects[i].Y, Right = sortedFrameRects[i].Right, Bottom = sortedFrameRects[i].Bottom, LedIndex = i.ToString(), }; if (inputCsvIndexes != null && i < inputCsvIndexes.Count) { model.LedIndex = inputCsvIndexes[i].ToString(); } gIndexingFrameModels.Add(model); } IndexingFrames.ItemsSource = gIndexingFrameModels; }
private void SetCoordinate(List <CsvRow> copiedRows) { int rowCount = copiedRows.Count; int column_LeftTopX = gInputCsvData.Column_LeftTopX; int column_LeftTopY = gInputCsvData.Column_LeftTopY; int column_RightBottomX = gInputCsvData.Column_RightBottomX; int column_RightBottomY = gInputCsvData.Column_RightBottomY; for (int i = gInputCsvData.AppendRowStartIndex; i < rowCount; i++) { string index = copiedRows[i][0].ToLower().Replace("led", "").Replace(" ", ""); IndexingFrameModel findModel = gIndexingFrameModels.FirstOrDefault(model => model.LedIndex == index); if (findModel != null) { copiedRows[i][column_LeftTopX] = findModel.Left.ToString(); copiedRows[i][column_LeftTopY] = findModel.Top.ToString(); copiedRows[i][column_RightBottomX] = findModel.Right.ToString(); copiedRows[i][column_RightBottomY] = findModel.Bottom.ToString(); } } }