我目前正在嘗試在WPF項目中創建一些基本的文字處理器功能。我使用的是RichTextBox,並且知道所有的EditingCommands(ToggleBold,ToggleItalic等等)。我卡住的東西是允許用戶改變字體大小和字體的面,就像在MS Office中那裏只改變了所選文本的值一樣,如果沒有選定的文本,那麼值就會改變爲當前插入符的位置。我已經拿出了相當數量的代碼來實現這個功能,但是在沒有選定的文本內容時遇到了問題。這是我爲RichTextBox.Selection所做的。WPF Richtextbox FontFace/FontSize
TextSelection text = richTextBox.Selection;
if (text.IsEmpty)
{
//doing this will change the entire word that the current caret position
//is on which is not the desire/expected result.
text.ApplyPropertyValue(RichTextBox.FontSizeProperty, value);
}
else
//This works as expected.
text.ApplyPropertyValue(RichTextBox.FontSizeProperty, value);
所以我的問題是我應該怎麼做呢?有沒有更好/更方便的方法來做到這一點?有一個想法是,我需要在段落中插入一個新的Inline,但我無法弄清楚如何做到這一點。任何幫助表示讚賞。謝謝。
全部免責聲明:這是this問題,從7個月前一個確切的重新發布。我在找到解決完全相同的問題的同時找到了它,但是這個問題沒有得到解答,我希望現在有人能夠回答它。
我已考慮過該選項,但它在文本的末尾添加了一個空格。如果我之後刪除該空間,則字體更改效果消失。 – Elad 2009-10-19 08:11:09