Я пытаюсь выделить слова, буквы или все, что помечено в регулярном выражении.Я использую RichTextBox в Silverlight (позаботьтесь о том, чтобы Silverlight НЕ использовал тот же .NET Framework, что и другие приложения, например, он НЕ имеет TextRange)
Каждый раз, когда текст имеет \ r \ n или \ n \ rстрелки перемещаются на 4 позиции вперед.Но действительно плохо, когда я делаю выделение, стиль текста добавляет еще 4 позиции.Даже, я думаю, он ведет себя более странно, чем расистски.Пожалуйста, посоветуйте мне что-нибудь в этом!
Спасибо FailDev.
Текст, который я использую для попытки, это:
ffffffffffafffffffffff fffffafffffffffff fffffffffffffafffffffff
(4 строкипосле последнего f происходит возврат носителя \ перевод строки)
Также этот код не работает с моим кодом (имеет ошибочное поведение или нет):
ffffffffffaaffffffafffff fffffafffffffffff fffffffffffffafffffffff
(4 строки, после последнего f есть возврат носителя \ перевод строки)
Идея выделена синим, жирным шрифтом и подчеркивает символ "a".
Последний кодВот что я попробовал:
MatchCollection CarrierReturns = MainGeneral.Build_Regex(@"[\r\n|\n\r]", false);
MatchCollection WordsFound = MainGeneral.Build_Regex("[a]", false);
foreach (Match x in WordsFound) {
int StringCarrierCount = 0;
if (CarrierReturns.Count > 0)
{
foreach (Match CR in CarrierReturns)
{
if (x.Index > CR.Index)
{
textBox1.Text += " CI:" + StringCarrierCount + "- ";
break;
}
StringCarrierCount++;
}
}
if (x.Index < CarrierReturns[0].Index) { StringCarrierCount = 0; }
StringBegin = 2 + x.Index + (4 * StringColorCounter) + (4 * StringCarrierCount);
StringEnd = StringBegin + x.Length;
textBox1.Text += StringBegin + "-" + StringEnd + " ";
StringColorCounter++;
StartPoint = MainData.ContentStart.GetPositionAtOffset(StringBegin, LogicalDirection.Forward);
EndPoint = MainData.ContentStart.GetPositionAtOffset(StringEnd, LogicalDirection.Forward);
MainData.Selection.Select(StartPoint, EndPoint);
MainData.Selection.ApplyPropertyValue(TextElement.ForegroundProperty, new SolidColorBrush(Colors.Blue));
MainData.Selection.ApplyPropertyValue(Run.TextDecorationsProperty, TextDecorations.Underline);
MainData.Selection.ApplyPropertyValue(TextElement.FontWeightProperty, FontWeights.Bold);
}
Заранее спасибо, пожалуйста, спросите меня, прежде чем оценивать плохо!:)