Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема подчеркивания слов в RichTextBox, Не удается 
:(
    Опции темы
ICEMAN3141592
Дата 19.11.2010, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 29.12.2009

Репутация: нет
Всего: нет



        Здравствуйте. У меня такая проблема. У меня есть RichTextBox. Пользователь должен вводить слова, те слова, которые у нас есть в словаре, подчеркиваем зеленым, тех слов, которых нету,- красным... Читал все статьи, которые связаны с моей задачей, но ничего близкого не нашел (Подсветка текста, Форматирование текста). Если бы у нас был статичный текст, то можно было наделать Run- ов, но у нас он изменяется...
        Заранее спасибо.
PM MAIL   Вверх
ICEMAN3141592
Дата 19.11.2010, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 29.12.2009

Репутация: нет
Всего: нет



Я думал, что хотя бы на Vingrad- е кто- то знает WPF
PM MAIL   Вверх
CasperSC
Дата 20.11.2010, 03:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 27.11.2009

Репутация: 1
Всего: 1



Вычитал пример из книги, затестил его, слова находит, но не выделяет почему-то. То есть я ставил точки останова и код реально работает, но текст именно не выделяется почему-то. Может поможет:

Код

<Window x:Class="WpfApplicationFindTextRichTextBox.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"
        TextOptions.TextFormattingMode="Display">
    <Grid>
        <DockPanel>
            <WrapPanel DockPanel.Dock="Top">
                <TextBox Height="23" Name="textBoxToFind" Width="232" />
                <Button Content="Поиск" Height="23" Name="btnFind" Width="75" Click="btnFind_Click" />
                <TextBlock Height="23" Name="textBlockOffset" Text="" />
            </WrapPanel>
            <RichTextBox Name="_rtb"/>
        </DockPanel>
    </Grid>
</Window>


Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplicationFindTextRichTextBox
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void btnFind_Click(object sender, RoutedEventArgs e)
        {
            FlowDocument doc = _rtb.Document;
            TextPointer cur = doc.ContentStart;

            while (cur != null)
            {
                TextPointer end = cur.GetPositionAtOffset(textBoxToFind.Text.Length);
                if (end != null)
                {
                    TextRange test = new TextRange(cur, end);
                    if (test.Text == textBoxToFind.Text)
                    {
                        _rtb.Selection.Select(test.Start, test.End);
                        break;
                    }
                }
                cur = cur.GetNextInsertionPosition(LogicalDirection.Forward);
            }
            
        }
    }
}


Это сообщение отредактировал(а) CasperSC - 20.11.2010, 11:37
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0545 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.