private void CreateConstraints() { var rowConstrainers = RowConstraints.Select(c => new Constrainer(c)).ToList(); var colConstrainers = ColumnConstraints.Select(c => new Constrainer(c)).ToList(); rowConstraintList = Enumerable.Range(0, NumRows).Select(i => new ConstraintListWrapper(i, true, rowConstrainers[i])).ToList(); colConstraintList = Enumerable.Range(0, NumColumns).Select(i => new ConstraintListWrapper(i, false, colConstrainers[i])).ToList(); Debug.Assert(rowConstraintList.Count == NumRows); Debug.Assert(colConstraintList.Count == NumColumns); }
protected override void OnChildAdded(IWidget child, int index, Point constraint) { List <IWidget> widgets; if (widgetsPerPosition.TryGetValue(constraint, out widgets)) { widgets.Add(child); } else { widgets = new List <IWidget>(1); widgets.Add(child); widgetsPerPosition[constraint] = widgets; } var row = constraint.Y; var column = constraint.X; if (row >= RowCount) { rows = null; } if (column >= ColumnCount) { columns = null; } while (RowConstraints.Count <= row) { RowConstraints.Add(LengthConstraint.Auto); } while (ColumnConstraints.Count <= column) { ColumnConstraints.Add(LengthConstraint.Auto); } }
public override int GetHashCode() { return(Size.GetHashCode() ^ ColumnConstraints.GetHashCode() ^ RowConstraints.GetHashCode()); }