/// <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;
        }
Ejemplo n.º 2
0
            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;
            }