protected RectangleFill AddRectangleFill(string name, Point posn, Size size, Color color, Double initialValue, string interfaceDeviceName, string interfaceElementName, bool fromCenter) { if (fromCenter) { posn = FromCenter(posn, size); } string componentName = GetComponentName(name); RectangleFill rectangleFill = new RectangleFill(); rectangleFill.Name = componentName; rectangleFill.Left = posn.X; rectangleFill.Top = posn.Y; rectangleFill.Height = size.Height; rectangleFill.Width = size.Width; rectangleFill.FillColor = color; rectangleFill.FillHeight = initialValue; Children.Add(rectangleFill); foreach (IBindingTrigger trigger in rectangleFill.Triggers) { AddTrigger(trigger, componentName); } AddAction(rectangleFill.Actions["set.Height"], componentName); AddDefaultInputBinding( childName: componentName, interfaceTriggerName: interfaceDeviceName + "." + interfaceElementName + ".changed", deviceActionName: "set.Height"); return(rectangleFill); }
public void RectangleFill_9x9_5Rectangles() { var rectangles = new[] { new RectangleFill.Rectangle(4, 4), new RectangleFill.Rectangle(6, 1), new RectangleFill.Rectangle(3, 3), new RectangleFill.Rectangle(2, 2), new RectangleFill.Rectangle(2, 5), }; var filler = new RectangleFill(9, 9); var solution = filler.CoverWithRectangles(rectangles); solution.Should().NotBeNullOrEmpty(); //still have some overlap! _output.WriteLine(filler.ToString()); }