public void TestGlueWithGluedControlInvisible_ChangedToVisible() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); IControlHabanero ctl = CreateControl(30, 10); IControlHabanero ctl2 = CreateControl(50, 10); //---------------Execute Test ---------------------- manager.AddControl(CreateControl(50, 10)); ctl.Visible = false; manager.AddControl(ctl); manager.AddGlue(); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(0, ctl.Left, "ctl is invisible so should be ignored"); Assert.AreEqual(0, ctl.Top, "ctl is invisible so should be ignored"); Assert.AreEqual(stdFirstPosLeft(), ctl2.Left, "ctl2 should move to next line but still be at left border because ctl is invisible "); Assert.AreEqual(StdSecondRowTop(), ctl2.Top, "ctl2 should be in row 2"); //---------------Execute Test ---------------------- ctl.Visible = true; //---------------Test Result ----------------------- Assert.AreEqual(stdFirstPosLeft(), ctl.Left); Assert.AreEqual(StdSecondRowTop(), ctl.Top, "ctl be in second row because of glue"); Assert.AreEqual(_STD_BORDER + ctl.Width + _STD_GAP, ctl2.Left, "ctl2 should move accross because ctl is visible "); Assert.AreEqual(StdSecondRowTop(), ctl2.Top, "ctl2 should be in row 2"); }
protected static FlowLayoutManager CreateFlowLayoutManager(IControlHabanero managedControl) { FlowLayoutManager manager = new FlowLayoutManager(managedControl, null); manager.HorizontalGapSize = _STD_GAP; manager.VerticalGapSize = _STD_GAP; return(manager); }
private Double rPosBottom = 278; // millimeters //------------------------------------------------------------------------------------------31.10.2004 /// <summary>Creates this report.</summary> /// <remarks> /// This method overrides the method <see cref="Root.Reports.Report.Create"/> of the base class <see cref="Root.Reports.Report"/>. /// </remarks> protected override void Create() { fd = new FontDef(this, FontDef.StandardFont.Helvetica); FontProp fp_Title = new FontPropMM(fd, 7.8); fp_Title.bBold = true; FontProp fp = new FontPropMM(fd, 2.1); fp.rLineFeedMM *= 0.85; // reduce line height by 15% FontProp fp_Bold = new FontPropMM(fd, 2.1); fp_Bold.rLineFeedMM *= 0.85; fp_Bold.bBold = true; FlowLayoutManager flm = new FlowLayoutManager(); flm.rContainerWidthMM = rPosRight - rPosLeft; flm.rContainerHeightMM = rPosBottom - rPosTop; flm.eNewContainer += new FlowLayoutManager.NewContainerEventHandler(Flm_NewContainer); // generate random text StringBuilder sb = new StringBuilder(20000); Random random = new Random(unchecked ((Int32)DateTime.Now.Ticks)); for (Int32 iItem = 0; iItem < 2000; iItem++) { Int32 iLength = (Int32)Math.Sqrt(random.NextDouble() * 200) + 2; for (Int32 iWord = 0; iWord < iLength; iWord++) { sb.Append((Char)(random.Next((Int32)'z' - (Int32)'a' + 1) + (Int32)'a')); } sb.Append(" "); Int32 iOp = random.Next(40); if (iOp == 0) { flm.Add(new RepString(fp_Bold, sb.ToString())); // append random text with bold font sb.Length = 0; } else if (iOp < 5) { flm.Add(new RepString(fp, sb.ToString())); // append random text with normal font sb.Length = 0; } if (iOp == 1) { flm.NewLine(fp.rLineFeed * 1.5); // new line } } // print page number and current date/time Double rY = rPosBottom + 1.5; foreach (Page page in enum_Page) { page.AddLT_MM(rPosLeft, rY, new RepString(fp, DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString())); page.AddRT_MM(rPosRight, rY, new RepString(fp, page.iPageNo + " / " + iPageCount)); } }
///<summary> /// Constructs the <see cref="FileChooserManager"/> ///</summary> ///<param name="controlFactory"></param> ///<param name="fileChooser"></param> public FileChooserManager(IControlFactory controlFactory, IFileChooser fileChooser) { _controlFactory = controlFactory; _fileChooser = fileChooser; FlowLayoutManager manager = new FlowLayoutManager(_fileChooser, _controlFactory); _fileTextBox = _controlFactory.CreateTextBox(); _selectFileButton = _controlFactory.CreateButton("Select...", null); manager.AddControl(_fileTextBox); manager.AddControl(_selectFileButton); }
private void CreateFilterButtons(IPanel filterButtonPanel) { const int buttonHeight = 20; const int buttonWidth = 50; //45; FilterButton = CreateFilterButton(buttonWidth, buttonHeight); ClearButton = CreateClearButton(buttonWidth, buttonHeight); this._buttonLayoutManager = new FlowLayoutManager(filterButtonPanel, _controlFactory); this._buttonLayoutManager.AddControl(FilterButton); this._buttonLayoutManager.AddControl(ClearButton); }
public void TestManagedControl() { //---------------Set up test pack------------------- IControlHabanero managedControl = GetControlFactory().CreateControl(); //---------------Execute Test ---------------------- FlowLayoutManager manager = new FlowLayoutManager(managedControl, null); //---------------Test Result ----------------------- Assert.AreSame(managedControl, manager.ManagedControl); //---------------Tear Down ------------------------- }
public void TestCentreAlignRowOneControl() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); IControlHabanero ctl = CreateStandardControl(); //---------------Execute Test ---------------------- manager.Alignment = FlowLayoutManager.Alignments.Centre; manager.AddControl(ctl); //---------------Test Result ----------------------- Assert.AreEqual((_STD_ManagedControl_Width - _STD_CONTROL_WIDTH) / 2, ctl.Left, "Control should be centre aligned."); }
//public int CountOfFilterControls() //{ // return //} private void CreateFilterButtons(IPanel filterButtonPanel) { const int buttonHeight = 20; const int buttonWidth = 45; _filterButton = CreateFilterButton(buttonWidth, buttonHeight); _clearButton = CreateClearButton(buttonWidth, buttonHeight); FlowLayoutManager layoutManager = new FlowLayoutManager(filterButtonPanel, _controlFactory); layoutManager.AddControl(_filterButton); layoutManager.AddControl(_clearButton); }
/// <summary> /// Creates the panel on the form /// </summary> /// <returns>Returns the panel created</returns> public IPanel createControlPanel() { IPanel panel = _controlFactory.CreatePanel(); ILabel label = _controlFactory.CreateLabel(_message, false); FlowLayoutManager flowLayoutManager = new FlowLayoutManager(panel, _controlFactory); flowLayoutManager.AddControl(label); flowLayoutManager.AddControl(_textBox); panel.Height = _textBox.Height + label.Height; panel.Width = _controlFactory.CreateLabel(_message, true).PreferredWidth + 20; _textBox.Width = panel.Width - 30; return(panel); }
public void TestBorderSize() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- IControlHabanero ctl1 = CreateStandardControl(); manager.BorderSize = 10; manager.AddControl(ctl1); //---------------Test Result ----------------------- Assert.AreEqual(manager.BorderSize, ctl1.Left, "Left of ctl1 should equal bordersize."); Assert.AreEqual(manager.BorderSize, ctl1.Top, "Top of ctl1 should equal bordersize."); }
public void TestAddTwoControls() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- manager.AddControl(CreateStandardControl()); IControlHabanero ctl2 = CreateStandardControl(); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(_STD_BORDER + _STD_GAP + _STD_CONTROL_WIDTH, ctl2.Left, "Left should equal Border + First control's width + spacing"); Assert.AreEqual(_STD_BORDER, ctl2.Top, "Top should equal Border"); }
public void TestNewLine() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); IControlHabanero ctl = CreateControl(20, 10); IControlHabanero ctl2 = CreateControl(20, 10); //---------------Execute Test ---------------------- manager.AddControl(ctl); manager.NewLine(); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(stdFirstPosLeft(), ctl2.Left, "ctl2 should be on the far left of a new line"); Assert.AreEqual(StdSecondRowTop(), ctl2.Top, "ctl2 should be on a new line"); }
public void TestRemoveControl() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); IControlHabanero ctlToAdd = CreateStandardControl(); manager.AddControl(ctlToAdd); //---------------Assert Precondition ---------------------- Assert.AreEqual(1, manager.ManagedControl.Controls.Count); //---------------Execute Test---------------------------- manager.RemoveControl(ctlToAdd); //---------------Test Result ----------------------- Assert.AreEqual(0, manager.ManagedControl.Controls.Count); }
public void TestLeftAlignedTabOrdering() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); IControlHabanero ctl1 = CreateStandardControl(); IControlHabanero ctl2 = CreateStandardControl(); //---------------Execute Test ---------------------- manager.Alignment = FlowLayoutManager.Alignments.Left; manager.AddControl(ctl1); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(0, ctl1.TabIndex); Assert.AreEqual(1, ctl2.TabIndex); }
public void TestAddControl() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- IControlHabanero ctlToAdd = CreateStandardControl(); manager.AddControl(ctlToAdd); //---------------Test Result ----------------------- Assert.AreEqual(stdFirstPosLeft(), ctlToAdd.Left, "Added control's Left prop should be 5 because of the default border."); Assert.AreEqual(stdFirstRowTop(), ctlToAdd.Top, "Added control's Top prop should be 5 because of the default border."); Assert.AreEqual(_STD_CONTROL_WIDTH, ctlToAdd.Width, "Added control's Width prop should be set."); Assert.AreEqual(_STD_CONTROL_HEIGHT, ctlToAdd.Height, "Added control's Height prop should be set."); }
public void SetLayoutManager(FlowLayoutManager layoutManager) { Precondition.ArgumentNotNull(layoutManager, nameof(layoutManager)); if (_layoutManager != null) panel1.Controls.Remove(_layoutManager); _layoutManager = layoutManager; panel1.Controls.Add(_layoutManager); _layoutManager.Dock = DockStyle.Fill; _layoutManager.AutoSize = false; _layoutManager.AutoScroll = true; _layoutManager.WrapContents = true; _layoutManager.BringToFront(); UpdateWidth(); }
public void TestGapSize() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- manager.HorizontalGapSize = 2; manager.VerticalGapSize = 2; manager.AddControl(CreateStandardControl()); IControlHabanero ctl = CreateStandardControl(); manager.AddControl(ctl); //---------------Test Result ----------------------- Assert.AreEqual(manager.HorizontalGapSize + _STD_CONTROL_WIDTH + _STD_BORDER, ctl.Left, "Left of ctl should be bordersize + 10 + gapsize."); }
public void TestAddTwoControlsWithWrap() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- managedControl.Width = 30; manager.AddControl(CreateStandardControl()); IControlHabanero ctl2 = CreateStandardControl(); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(_STD_BORDER, ctl2.Left, "Should wrap to the next line because it's right is outside the area."); Assert.AreEqual(_STD_BORDER + _STD_GAP + _STD_CONTROL_HEIGHT, ctl2.Top, "Top should equal Border + first line's max height + gap."); }
public void TestGlueSimpleCase_DontAddSecondControlToGlue_Resize() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); //---------------Execute Test ---------------------- manager.AddControl(CreateControl(40, 10)); IControlHabanero gluedCtl = CreateControl(35, 10); manager.AddControl(gluedCtl); manager.AddGlue(); manager.ManagedControl.Width = 50; //---------------Test Result ----------------------- Assert.AreEqual(stdFirstPosLeft(), gluedCtl.Left, "Glue should mean ctl moves with ctl2 (if space permits)"); Assert.AreEqual(StdSecondRowTop(), gluedCtl.Top, "Glue should mean ctl moves to new row with ctl2 (if space permits)"); }
public void Test_ChangeToRightAlignChangeShouldLayout() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); const int managedControlWidth = 60; manager.ManagedControl.Width = managedControlWidth; IControlHabanero ctl = CreateStandardControl(); manager.AddControl(ctl); //---------------Execute Test ---------------------- manager.Alignment = FlowLayoutManager.Alignments.Right; //---------------Test Result ----------------------- Assert.AreEqual(managedControlWidth - ctl.Width - manager.BorderSize, ctl.Left, "Control should be right aligned."); }
public JournalReport(Journal j) { this.j = j; fd = new FontDef(this, FontDef.StandardFont.Helvetica); fp = new FontPropMM(fd, 2.1); fp_Bold = new FontPropMM(fd, 2.1, System.Drawing.Color.Blue); fp_Bold.bBold = true; fp_Header = new FontPropMM(fd, 2.6); flm = new FlowLayoutManager(); flm.rContainerWidthMM = rPosRight - rPosLeft; flm.rContainerHeightMM = rPosBottom - rPosTop; flm.eNewContainer += new FlowLayoutManager.NewContainerEventHandler(Flm_NewContainer); userIcon = GetType().Assembly.GetManifestResourceStream("EF.ljArchive.PDF.res.userinfo.jpg"); communityIcon = GetType().Assembly.GetManifestResourceStream("EF.ljArchive.PDF.res.community.jpg"); }
public void TestRefreshOnBorderSizeChange() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- IControlHabanero ctl1 = CreateStandardControl(); IControlHabanero ctl2 = CreateStandardControl(); manager.ManagedControl.Width = 40; manager.AddControl(ctl1); manager.AddControl(ctl2); manager.BorderSize = 10; //---------------Test Result ----------------------- Assert.AreEqual(manager.BorderSize, ctl2.Left, "Left of ctl2 should equal bordersize because it should wrap."); Assert.AreEqual(manager.BorderSize + _STD_CONTROL_HEIGHT + _STD_GAP, ctl2.Top, "Top of ctl2 should equal bordersize + rowsize + gapsize."); }
public void TestResizeWhenNothingHappens() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- IControlHabanero ctl1 = CreateStandardControl(); IControlHabanero ctl2 = CreateStandardControl(); manager.AddControl(ctl1); manager.AddControl(ctl2); manager.ManagedControl.Height = 50; //---------------Test Result ----------------------- Assert.AreEqual(_STD_BORDER, ctl1.Left, "Left should be the same after resize"); Assert.AreEqual(_STD_BORDER, ctl1.Top, "Top should be the same after resize."); Assert.AreEqual(_STD_BORDER + _STD_CONTROL_WIDTH + _STD_GAP, ctl2.Left, "Left should be the same after resize."); Assert.AreEqual(_STD_BORDER, ctl2.Top, "Top should be the same after resize."); }
public void TestResizeWhenPositionsShouldChange() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- IControlHabanero ctl1 = CreateStandardControl(); IControlHabanero ctl2 = CreateStandardControl(); manager.AddControl(ctl1); manager.AddControl(ctl2); manager.ManagedControl.Width = 30; //---------------Test Result ----------------------- Assert.AreEqual(FirstPositionLeft(), ctl1.Left, "Left of ctl1 should be the same after resize"); Assert.AreEqual(FirstPositionTop(), ctl1.Top, "Top of ctl1 should be the same after resize."); Assert.AreEqual(FirstPositionLeft(), ctl2.Left, "Left of ctl2 should have wrapped to next line after resize."); Assert.AreEqual(StdSecondRowTop(), ctl2.Top, "Top should be on the next row after resize."); }
public void TestOnlyVisibleControlsIncluded() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- manager.AddControl(CreateStandardControl()); IControlHabanero ctl1 = CreateStandardControl(); ctl1.Visible = false; manager.AddControl(ctl1); IControlHabanero ctl2 = CreateStandardControl(); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(StdSecondPosLeft(), ctl2.Left, "Second Control should be ignored because it is invisible."); }
public void TestGlueSimpleCase() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); IControlHabanero ctl1 = CreateControl(35, 10); IControlHabanero ctl2 = CreateControl(35, 10); //---------------Execute Test ---------------------- manager.AddControl(CreateControl(40, 10)); manager.AddControl(ctl1); manager.AddGlue(); manager.AddControl(ctl2); //---------------Test Result ----------------------- Assert.AreEqual(stdFirstPosLeft(), ctl1.Left, "Glue should mean ctl moves with ctl2 (if space permits)"); Assert.AreEqual(StdSecondRowTop(), ctl1.Top, "Glue should mean ctl moves to new row with ctl2 (if space permits)"); Assert.AreEqual(stdFirstPosLeft() + ctl1.Width + _STD_GAP, ctl2.Left, "ctl2 should be to the right of ctl on a new line because of glue"); Assert.AreEqual(StdSecondRowTop(), ctl2.Top, "ctl2 should be in row 2"); }
public void TestRefreshOnControlSizeChanged() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- manager.AddControl(CreateStandardControl()); IControlHabanero ctl1 = CreateStandardControl(); manager.AddControl(ctl1); IControlHabanero ctl2 = CreateStandardControl(); manager.AddControl(ctl2); ctl1.Width = 20; //---------------Test Result ----------------------- Assert.AreEqual(ctl1.Width + _STD_GAP + StdSecondPosLeft(), ctl2.Left, "Control positions should be refreshed when one control's size is changed."); }
public void TestAddThreeControlsOfDifferentHeightWithWrap() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); IControlHabanero ctl2 = CreateControl(10, 20); //---------------Execute Test ---------------------- managedControl.Width = 40; manager.AddControl(CreateStandardControl()); manager.AddControl(ctl2); IControlHabanero ctl = CreateStandardControl(); manager.AddControl(ctl); //---------------Test Result ----------------------- Assert.AreEqual(_STD_BORDER, ctl.Left, "Should wrap to next line because it doesn't fit on first line."); Assert.AreEqual(stdFirstRowTop() + ctl2.Height + _STD_GAP, ctl.Top, "Top should equal border + first line's max height + gap."); }
public void TestLeftAlignedTabOrderingMultipleRows() { //---------------Set up test pack------------------- FlowLayoutManager manager = CreateFlowLayoutManager(); //---------------Execute Test ---------------------- manager.Alignment = FlowLayoutManager.Alignments.Left; IControlHabanero ctl1 = CreateControl(50, 20); manager.AddControl(ctl1); manager.AddControl(CreateControl(20, 20)); IControlHabanero ctl3 = CreateControl(50, 20); manager.AddControl(ctl3); //---------------Test Result ----------------------- Assert.AreEqual(1, ctl1.TabIndex); Assert.AreEqual(3, ctl3.TabIndex); }
public void TestRefreshOnGapSizeChange() { //---------------Set up test pack------------------- IControlHabanero managedControl = CreateManagedControl(); FlowLayoutManager manager = CreateFlowLayoutManager(managedControl); //---------------Execute Test ---------------------- manager.ManagedControl.Width = 100; manager.BorderSize = 0; manager.AddControl(CreateControl(80, 20)); IControlHabanero ctl = CreateControl(50, 20); manager.AddControl(ctl); manager.HorizontalGapSize = 2; manager.VerticalGapSize = 2; //---------------Test Result ----------------------- Assert.AreEqual(22, ctl.Top, "Top of ctl should be 20 + gapsize. Border is zero"); }
public BaseTemplate() { report = new Report(new PdfFormatter()); FontDef fd = new FontDef(report, "Helvetica"); standardFont = new FontPropMM(fd, 5); page = new Root.Reports.Page(report); FontDef fss = new FontDef(report, "Arial"); arialFont = new FontPropMM(fss, 6); flm = new FlowLayoutManager(null); flm2 = new FlowLayoutManager(null); flm.rContainerHeightMM = 120; flm2.rContainerHeightMM = 120; flm.rContainerWidthMM = 95; flm2.rContainerWidthMM = 95; flm.eNewContainer += new FlowLayoutManager.NewContainerEventHandler(LeftContainer); flm2.eNewContainer += new FlowLayoutManager.NewContainerEventHandler(RightContainer); setHeader(); setFooter(); }
public BaseTemplate() { report = new Report(new PdfFormatter()); FontDef fd = new FontDef(report, "Helvetica"); standardFont = new FontPropMM(fd, 5); page = new Root.Reports.Page(report); FontDef fss = new FontDef(report, "Arial"); arialFont = new FontPropMM(fss, 6); flm = new FlowLayoutManager(null); flm2 = new FlowLayoutManager(null); flm.rContainerHeightMM = 120; flm2.rContainerHeightMM = 120; flm.rContainerWidthMM = 95; flm2.rContainerWidthMM = 95; flm.eNewContainer += new FlowLayoutManager.NewContainerEventHandler(LeftContainer); flm2.eNewContainer += new FlowLayoutManager.NewContainerEventHandler(RightContainer); //str = "C:\\Documents and Settings\\Administrador\\Escritorio\\asp-workspace\\MAPA_FVSL\\PDFExport\\PDFExport\\Images\\"; str = "D:\\WORK\\mapsvsl\\asp-workspace\\MAPA_FVSL\\PDFExport\\PDFExport\\Images\\"; setHeader(); setFooter(); }
private void RightContainer(Object oSender, FlowLayoutManager.NewContainerEventArgs ea) { this.page.AddMM(109, 50, ea.container); }
/// <summary> /// Creates the panel on the form /// </summary> /// <returns>Returns the panel created</returns> public IPanel createControlPanel() { IPanel panel = _controlFactory.CreatePanel(); ILabel label = _controlFactory.CreateLabel(_message, false); FlowLayoutManager flowLayoutManager = new FlowLayoutManager(panel, _controlFactory); flowLayoutManager.AddControl(label); flowLayoutManager.AddControl(_textBox); panel.Height = _textBox.Height + label.Height; panel.Width = _controlFactory.CreateLabel(_message, true).PreferredWidth + 20; _textBox.Width = panel.Width - 30; return panel; }