//--------------------------------------------------------------------------- private void fn_MapGridSet(ref Grid grd, ref Label[,] lbStorg, int sel = 0) { // int nX = DM.STOR[sel]._nMaxCol; int nY = DM.STOR[sel]._nMaxRow; grd.Children.Clear(); grd.Background = Brushes.White; grd.ColumnDefinitions.Clear(); grd.RowDefinitions.Clear(); int idx = 0, idxNo = 0; int nCol = nX; int nRow = nY; int iR = 0, iC = 0; lbStorg = (Label[, ])UserFunction.fn_ResizeArray(lbStorg, new int[] { nY, nX }); for (int C = 0; C < nCol; C++) { grd.ColumnDefinitions.Add(new ColumnDefinition()); } for (int R = 0; R < nRow; R++) { grd.RowDefinitions.Add(new RowDefinition()); } for (int r = 0; r < nRow; r++) { for (int c = 0; c < nCol; c++) { switch ((EN_DIS_DIR)DM.STOR[sel]._nDir) { case EN_DIS_DIR.ddTopLeft: iR = r; iC = c; break; // case EN_DIS_DIR.ddTopRight: iR = r; iC = (nCol - 1) - c; break; // case EN_DIS_DIR.ddBtmRight: iR = (nRow - 1) - r; iC = (nCol - 1) - c; break; // case EN_DIS_DIR.ddBtmLeft: iR = (nRow - 1) - r; iC = c; break; // default: return; } idx = r * nCol + c; idxNo = iR * nCol + iC; grd.Children.Add(new Label()); Label lb = (grd.Children[idx] as Label); lb.Content = "No." + idxNo + 1; lb.BorderThickness = new Thickness(1); lb.BorderBrush = System.Windows.Media.Brushes.Black; lb.Tag = new Point(iR, iC); lb.FontSize = 8; lb.HorizontalContentAlignment = HorizontalAlignment.Left; lb.VerticalContentAlignment = VerticalAlignment.Top; lb.MouseDown += Storage_Click; lb.Margin = new Thickness(1); Grid.SetColumn((grd.Children[idx] as Label), c); Grid.SetRow((grd.Children[idx] as Label), r); lbStorg[iR, iC] = lb; } } Border boder = new Border(); boder.BorderBrush = System.Windows.Media.Brushes.Black; boder.BorderThickness = new System.Windows.Thickness(1); boder.Margin = new Thickness(-2); Grid.SetRowSpan(boder, 100); Grid.SetColumnSpan(boder, 100); grd.Children.Add(boder); }