/// <summary> /// Customize the text editor when we are using our helper. /// </summary> private void ConfigureTextEditorInputMode(IInputModeContext context, TextEditorInputMode mode, ILabel labelToEdit) { var textBox = mode.TextBox; var oldForeground = textBox.ForeColor; var oldBackground = textBox.BackColor; SetStyling(textBox, TextBoxForeground, TextBoxBackground); // Restore after editing EventHandler <TextEventArgs> afterEditing = null; afterEditing = delegate { SetStyling(textBox, oldForeground, oldBackground); mode.TextEdited -= afterEditing; mode.EditingCanceled -= afterEditing; }; mode.TextEdited += afterEditing; mode.EditingCanceled += afterEditing; }
private void ConfigureTextEditorInputMode(IInputModeContext context, TextEditorInputMode mode, ILabel label) { var oldBackground = mode.TextBox.BackColor; var oldVisual = labelCanvasObject.Visible; // We know that this label helper is only used once this demo is properly set up. var graphEditorInputMode = (GraphEditorInputMode)context.CanvasControl.InputMode; var textEditorInputMode = ((LabelEditingForm.DemoTextEditorInputMode)graphEditorInputMode.TextEditorInputMode); mode.TextBox.BackColor = Color.White; var oldFont = mode.TextBox.Font; mode.TextBox.Font = new Font(oldFont.FontFamily, 20, oldFont.Style); // Make sure that the text box location matches the one of the zoom invariant page header label textEditorInputMode.ShowInViewCoordinates = true; mode.Location = new DynamicViewPoint((GraphControl)context.CanvasControl, 5, 35); mode.Anchor = new PointD(0, 1); // Hide this label during editing if the corresponding setting is enabled. // This is only necessary since this label is not part of the graph. if (graphEditorInputMode.HideLabelDuringEditing) { labelCanvasObject.Visible = false; context.CanvasControl.Invalidate(); } // Restore after editing EventHandler <TextEventArgs> afterEditing = null; afterEditing = delegate { labelCanvasObject.Visible = oldVisual; mode.TextBox.BackColor = oldBackground; mode.TextBox.Font = oldFont; context.CanvasControl.Invalidate(); mode.TextEdited -= afterEditing; mode.EditingCanceled -= afterEditing; }; mode.TextEdited += afterEditing; mode.EditingCanceled += afterEditing; }