Я работаю с WP richtextbox.i, выполненным для навигации по каждой строке от текущей позиции каретки до следующей строки, предыдущей и т. Д. Работает отлично. Мне нужно динамически менять шрифты в richtextbox.Приложение Slow After Change fontsize в WPF richtextbox?
я использовал это ниже методы, чтобы изменить размер шрифта:
myrichtextbox.SetValue(TextElement.FontSizeProperty, fontSizedouble +10);
myrichtextbox.FontSize = (txtAppendValue.FontSize + 10);
он works.But после выполнения этой методики, другое время выполнения функциональности принято является high.Before, что NavigateNextLine()
принято 15мса к исполнению 20ms.After это занимает от 40 до 50 ms.i, непрерывно вызывает шрифт размером 4,5 раза, тогда NavigateNextLine()
занимает 100 мс t0 120 мс.
public void NavigateNextLine()
{
Int32 lineNumber;
txtAppendValue.CaretPosition.GetLineStartPosition(-int.MaxValue, out lineNumber);
Int32 iLineIndex = System.Math.Abs(lineNumber);
Int32 iCurrentStart = 0;
Int32 iCurWordLength = 0;
for (Int32 icnt = 0; icnt <= iLineIndex; icnt++)
{
m_strCurLineText = GetLineText(txtAppendValue.CaretPosition.GetLineStartPosition(lineNumber), 0, null);
iCurrentStart = iCurrentStart + m_strCurLineText.Length;
lineNumber += 1;
}
String[] strArr = m_strCurLineText.Split(' ');
if (strArr.Length > 0)
{
iCurWordLength = strArr[0].Length; // Get the first word length of current line
if (iCurWordLength == 0)
{
iCurWordLength = strArr[1].Length;
iCurrentStart = iCurrentStart + 1;
}
}
else
{
iCurWordLength = m_strCurLineText.Length; //to get single word line length
}
NewStart = iCurrentStart;
}
String GetLineText(TextPointer TextPointer, int LineRltv = 0, string Default = null)
{
TextPointer tp1 = TextPointer.GetLineStartPosition(LineRltv);
if (tp1 == null)
{
return Default;
}
else
{
tpNextLine2 = tp1.GetLineStartPosition(1);
TextRange tr = null;
if (tpNextLine2 == null)
{
tpNextLine2 = txtAppendValue.Document.ContentEnd;
}
tr = new TextRange(tp1, tpNextLine2);
return tr.Text;
}
}
И в чем проблема? Как ее решить?
рассматривает Арджун
разместить свой код для остальной функциональности – Muds
@ грязей: Проверьте это сейчас. –