private void richTextBox_TextPatternMatch(object sender, RichTextBoxEventArgs e)
 {
     switch (e.Parameter.ToString())
     {
         case ":)":
             e.Parameter = new Image {Source = new BitmapImage(new Uri("images/happy.png", UriKind.Relative))};
             break;
         case ":(":
             e.Parameter = new Image {Source = new BitmapImage(new Uri("images/unhappy.png", UriKind.Relative))};
             break;
         case ";)":
             e.Parameter = new Image {Source = new BitmapImage(new Uri("images/wink.png", UriKind.Relative))};
             break;
         case "(c)":
         case "(C)":
             e.Parameter = "©";
             break;
     }
 }
        private void richTextBox_ShowContextMenu(object sender, RichTextBoxEventArgs e)
        {
            //Visibility state = Visibility.Collapsed;

            //if (e.Source is Table && richTextBox.ActiveTable != null)
            //    state = Visibility.Visible;

            //contextMenu.Get("tableDivider").Visibility = state;
            //contextMenu.Get("tableDivider2").Visibility = state;
            //contextMenu.Get("formatTable").Visibility = state;
            //contextMenu.Get("insertRow").Visibility = state;
            //contextMenu.Get("insertColumn").Visibility = state;
            //contextMenu.Get("deleteRow").Visibility = state;
            //contextMenu.Get("deleteColumn").Visibility = state;

            //e.Cancel = false;
        }
 private void RichTextBox_SelectionChanged(object sender, RichTextBoxEventArgs e)
 {
     UpdateFormattingControls();
 }
 //private void InsertTable_Click(object sender, RoutedEventArgs e)
 //{
 //    tableRows.IsEnabled = true;
 //    tableColumns.IsEnabled = true;
 //    insertEditTableDialog.Title = "Insert Table";
 //    insertEditTableDialog.Buttons = DialogButtons.Close;
 //    insertEditTableDialog.CreateButton(DialogButtons.Custom, "Insert", "insert");
 //    insertEditTableDialog.ShowAsModal();
 //}
 //private void EditTable_Click(object sender, RoutedEventArgs e)
 //{
 //    foreach (ComboBoxItem item in tableStyle.Items)
 //    {
 //        if (item.Tag.ToString() == richTextBox.ActiveTable.StyleID)
 //        {
 //            tableStyle.SelectedItem = item;
 //            break;
 //        }
 //    }
 //    tableRows.Text = richTextBox.ActiveTable.RowDefinitions.Count.ToString();
 //    tableColumns.Text = richTextBox.ActiveTable.ColumnDefinitions.Count.ToString();
 //    tableRows.IsEnabled = false;
 //    tableColumns.IsEnabled = false;
 //    insertEditTableDialog.Title = "Edit Table";
 //    insertEditTableDialog.Buttons = DialogButtons.Apply | DialogButtons.Close;
 //    insertEditTableDialog.ShowAsModal();
 //}
 //private void insertEditTable_Closed(object sender, DialogEventArgs e)
 //{
 //    Table selectedTable = richTextBox.ActiveTable;
 //    int rows = 1;
 //    int columns = 1;
 //    string styleID;
 //    if (insertEditTableDialog.Result != DialogButtons.Close &&
 //        insertEditTableDialog.Result != DialogButtons.None)
 //    {
 //        styleID = tablePreview.Tag.ToString();
 //        int.TryParse(tableRows.Text, out rows);
 //        int.TryParse(tableColumns.Text, out columns);
 //        if (!richTextBox.TableStyles.ContainsKey(styleID))
 //        {
 //            // Create a new table style if not present
 //            richTextBox.TableStyles.Add(styleID, new RichTextBoxTableStyle(styleID, tablePreview.Background,
 //                                                                           tablePreview.CellFill,
 //                                                                           tablePreview.HeaderFill,
 //                                                                           tablePreview.BorderBrush,
 //                                                                           tablePreview.BorderThickness,
 //                                                                           tablePreview.CellBorderBrush,
 //                                                                           tablePreview.CellBorderThickness, 2));
 //        }
 //        switch (e.Tag.ToString())
 //        {
 //            case "insert":
 //                richTextBox.InsertTable(rows, columns, tablePreview.HeaderRows, tablePreview.HeaderColumns,
 //                                        styleID);
 //                break;
 //            case "apply":
 //                selectedTable.HeaderColumns = tablePreview.HeaderColumns;
 //                selectedTable.HeaderRows = tablePreview.HeaderRows;
 //                richTextBox.TableStyles[styleID].ApplyToTable(selectedTable);
 //                break;
 //        }
 //    }
 //}
 //private void ShowStyle_Click(object sender, RoutedEventArgs e)
 //{
 //    stylePopup.Show();
 //}
 //private void stylePopup_Closed(object sender, DialogEventArgs e)
 //{
 //    if (e.Tag.ToString() == "ok")
 //    {
 //        string styleID = ((TextBlockPlus) selectStyle.SelectedItem).Tag.ToString();
 //        if (richTextBox.SelectionStyle.ID != styleID)
 //        {
 //            ExecuteFormatting(Formatting.Style, styleID);
 //        }
 //    }
 //}
 //private void tableStyle_SelectionChanged(object sender, SelectionChangedEventArgs e)
 //{
 //    if (tableStyle != null)
 //    {
 //        if (tableStyle.SelectedItem != null)
 //        {
 //            var borderItem = (Table) ((ComboBoxItem) tableStyle.SelectedItem).Content;
 //            if (borderItem != null)
 //            {
 //                tablePreview.Tag = ((ComboBoxItem) tableStyle.SelectedItem).Tag;
 //                tablePreview.Background = borderItem.Background;
 //                tablePreview.HeaderColumns = borderItem.HeaderColumns;
 //                tablePreview.HeaderRows = borderItem.HeaderRows;
 //                tablePreview.BorderBrush = borderItem.BorderBrush;
 //                tablePreview.BorderThickness = borderItem.BorderThickness;
 //                tablePreview.CellBorderBrush = borderItem.CellBorderBrush;
 //                tablePreview.CellBorderThickness = borderItem.CellBorderThickness;
 //                tablePreview.HeaderFill = borderItem.HeaderFill;
 //                tablePreview.CellFill = borderItem.CellFill;
 //            }
 //        }
 //    }
 //}
 private void RichTextBox_LinkClicked(object sender, RichTextBoxEventArgs e)
 {
     HtmlPage.Window.Navigate(new Uri(e.Parameter.ToString()), "_blank");
 }
        private void richTextBox_ElementWrite(object sender, RichTextBoxEventArgs e)
        {
            Liquid.Tree tree;
            BitmapImage image;

            switch (e.Format)
            {
                case Format.XML:
                    // Specify the Liquid treeviews as XAML
                    if (e.Source is Liquid.Tree)
                    {
                        tree = (Liquid.Tree) e.Source;
                        e.Parameter = CreateTreeViewXAML();
                    }
                    break;
                case Format.Text:
                    // When a non-text element is converted to plain text you can specify here what it's text
                    // representation is (here we look for Emoticon images and set the appropriate text)
                    if (e.Source is Image)
                    {
                        image = (BitmapImage) ((Image) e.Source).Source;
                        switch (image.UriSource.ToString())
                        {
                            case "images/happy.png":
                                e.Content = ":)";
                                break;
                            case "images/unhappy.png":
                                e.Content = "):";
                                break;
                            case "images/wink.png":
                                e.Content = ";)";
                                break;
                        }
                    }
                    else if (e.Source is CheckBox)
                    {
                        e.Content = ((CheckBox) e.Source).IsChecked.Value.ToString();
                    }
                    break;
            }
        }
 private void richTextBox_Diagnostic(object sender, RichTextBoxEventArgs e)
 {
     var tb = new TextBox
                  {
                      TextWrapping = TextWrapping.Wrap,
                      AcceptsReturn = true,
                      Text = e.Parameter.ToString()
                  };
     diagnosticList.Children.Add(tb);
 }