C #: Как я могу изменить выбранный текст / обернуть содержимое и т. Д.? - PullRequest
0 голосов
/ 23 августа 2010

то, что я хочу получить, похоже на редактор в stackoverflow. где, если я нажму полужирный, он обернет мой выделенный текст некоторым текстом (в данном случае **)

Ответы [ 2 ]

2 голосов
/ 23 августа 2010
public Window1()
{
    InitializeComponent();
    textBox.KeyDown += OnTextBoxKeyDown;
}

private void OnTextBoxKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.B
         && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
    {
        string boldText = "**";
        int beginMarkerIndex = textBox.SelectionStart;
        int endMarkerIndex = beginMarkerIndex + textBox.SelectionLength + boldText.Length;
        textBox.Text = textBox.Text.Insert(beginMarkerIndex, boldText)
                                   .Insert(endMarkerIndex, boldText); 
    }
}
0 голосов
/ 23 августа 2010

Не тестировалось:

TextBox textBox;
// ...
string bolded = "**" + textBox.SelectedText + "**";
int index = textBox.SelectionStart;
textBox.Text.Remove(textBox.SelectionStart, textBox.SelectionLength);
textBox.Text.Insert(index, bolded);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...