public NozzleOffsetCalibrationPrintPage(ISetupWizard setupWizard, PrinterConfig printer) : base(setupWizard) { this.WindowTitle = "Nozzle Offset Calibration Wizard".Localize(); this.HeaderText = "Nozzle Offset Calibration".Localize() + ":"; this.Name = "Nozzle Offset Calibration Wizard"; templatePrinter = new NozzleOffsetTemplatePrinter(printer); contentRow.Padding = theme.DefaultContainerPadding; contentRow.AddChild(xOffsetWidget = new NozzleOffsetTemplateWidget(templatePrinter.ActiveOffsets, FlowDirection.LeftToRight, theme) { Padding = new BorderDouble(left: 4), HAnchor = HAnchor.Absolute, VAnchor = VAnchor.Absolute, Height = 110, Width = 480 }); xOffsetWidget.OffsetChanged += (s, e) => { this.XOffset = xOffsetWidget.ActiveOffset; xOffsetText.Text = string.Format("{0}: {1:0.###}", "X Offset".Localize(), this.XOffset); this.NextButton.Enabled = this.XOffset != double.MinValue && this.YOffset != double.MinValue; }; var container = new FlowLayoutWidget() { HAnchor = HAnchor.Stretch, VAnchor = VAnchor.Stretch }; contentRow.AddChild(container); container.AddChild(yOffsetWidget = new NozzleOffsetTemplateWidget(templatePrinter.ActiveOffsets, FlowDirection.BottomToTop, theme) { Margin = new BorderDouble(top: 15), Padding = new BorderDouble(bottom: 4), VAnchor = VAnchor.Absolute, HAnchor = HAnchor.Absolute, Height = 480, Width = 110 }); var verticalColumn = new FlowLayoutWidget(FlowDirection.TopToBottom) { HAnchor = HAnchor.Stretch, VAnchor = VAnchor.Stretch, Margin = 40 }; container.AddChild(verticalColumn); verticalColumn.AddChild(xOffsetText = new TextWidget("".Localize(), pointSize: theme.DefaultFontSize, textColor: theme.TextColor) { Width = 200, Margin = new BorderDouble(bottom: 10) }); verticalColumn.AddChild(yOffsetText = new TextWidget("".Localize(), pointSize: theme.DefaultFontSize, textColor: theme.TextColor) { Width = 200 }); yOffsetWidget.OffsetChanged += (s, e) => { this.YOffset = yOffsetWidget.ActiveOffset; yOffsetText.Text = string.Format("{0}: {1:0.###}", "Y Offset".Localize(), this.YOffset); this.NextButton.Enabled = this.XOffset != double.MinValue && this.YOffset != double.MinValue; }; this.NextButton.Enabled = false; }