protected override void OnApplyTemplate()

in src/Calculator/Controls/EquationTextBox.cs [153:265]


            protected override void OnApplyTemplate()
            {
                m_equationButton = GetTemplateChild("EquationButton") as ToggleButton;
                m_richEditBox = GetTemplateChild("MathRichEditBox") as MathRichEditBox;
                m_deleteButton = GetTemplateChild("DeleteButton") as Button;
                m_removeButton = GetTemplateChild("RemoveButton") as Button;
                m_functionButton = GetTemplateChild("FunctionButton") as Button;
                m_colorChooserButton = GetTemplateChild("ColorChooserButton") as ToggleButton;
                m_richEditContextMenu = GetTemplateChild("MathRichEditContextMenu") as MenuFlyout;
                m_kgfEquationMenuItem = GetTemplateChild("FunctionAnalysisMenuItem") as MenuFlyoutItem;
                m_removeMenuItem = GetTemplateChild("RemoveFunctionMenuItem") as MenuFlyoutItem;
                m_colorChooserMenuItem = GetTemplateChild("ChangeFunctionStyleMenuItem") as MenuFlyoutItem;
                m_cutMenuItem = GetTemplateChild("CutMenuItem") as MenuFlyoutItem;
                m_copyMenuItem = GetTemplateChild("CopyMenuItem") as MenuFlyoutItem;
                m_pasteMenuItem = GetTemplateChild("PasteMenuItem") as MenuFlyoutItem;
                m_undoMenuItem = GetTemplateChild("UndoMenuItem") as MenuFlyoutItem;
                m_selectAllMenuItem = GetTemplateChild("SelectAllMenuItem") as MenuFlyoutItem;

                var resProvider = AppResourceProvider.GetInstance();

                if (m_richEditBox != null)
                {
                    m_richEditBox.GotFocus += OnRichEditBoxGotFocus;
                    m_richEditBox.LostFocus += OnRichEditBoxLostFocus;
                    m_richEditBox.TextChanged += OnRichEditTextChanged;
                    m_richEditBox.SelectionFlyout = null;
                    m_richEditBox.EquationSubmitted += OnEquationSubmitted;
                    m_richEditBox.FormatRequest += OnEquationFormatRequested;
                }

                if (m_equationButton != null)
                {
                    m_equationButton.Click += OnEquationButtonClicked;
                }

                if (m_richEditContextMenu != null)
                {
                    m_richEditContextMenu.Opened += OnRichEditMenuOpened;
                }

                if (m_deleteButton != null)
                {
                    m_deleteButton.Click += OnDeleteButtonClicked;
                }

                if (m_removeButton != null)
                {
                    m_removeButton.Click += OnRemoveButtonClicked;
                }

                if (m_removeMenuItem != null)
                {
                    m_removeMenuItem.Text = resProvider.GetResourceString("removeMenuItem");
                    m_removeMenuItem.Click += OnRemoveButtonClicked;
                }

                if (m_colorChooserButton != null)
                {
                    m_colorChooserButton.Click += OnColorChooserButtonClicked;
                }

                if (m_colorChooserMenuItem != null)
                {
                    m_colorChooserMenuItem.Text = resProvider.GetResourceString("colorChooserMenuItem");
                    m_colorChooserMenuItem.Click += OnColorChooserButtonClicked;
                }

                if (m_functionButton != null)
                {
                    m_functionButton.Click += OnFunctionButtonClicked;
                    m_functionButton.IsEnabled = false;
                }

                if (m_kgfEquationMenuItem != null)
                {
                    m_kgfEquationMenuItem.Text = resProvider.GetResourceString("functionAnalysisMenuItem");
                    m_kgfEquationMenuItem.Click += OnFunctionMenuButtonClicked;
                }

                if (ColorChooserFlyout != null)
                {
                    ColorChooserFlyout.Opened += OnColorFlyoutOpened;
                    ColorChooserFlyout.Closed += OnColorFlyoutClosed;
                }

                if (m_cutMenuItem != null)
                {
                    m_cutMenuItem.Click += OnCutClicked;
                }

                if (m_copyMenuItem != null)
                {
                    m_copyMenuItem.Click += OnCopyClicked;
                }

                if (m_pasteMenuItem != null)
                {
                    m_pasteMenuItem.Click += OnPasteClicked;
                }

                if (m_undoMenuItem != null)
                {
                    m_undoMenuItem.Click += OnUndoClicked;
                }

                if (m_selectAllMenuItem != null)
                {
                    m_selectAllMenuItem.Click += OnSelectAllClicked;
                }

                UpdateCommonVisualState();
                UpdateButtonsVisualState();
            }