更改字体名称&保留格式时RichTextBox中的大小

时间:2016-10-23 19:25:49

标签: c# formatting richtextbox

我已经设法改变了富文本文档的字体(名称和大小),同时保留了样式(即:粗体,斜体,下划线)。但是,我的解决方案需要两个额外的RTB(两者都不可见)。相关代码(如下)通过字体名称/大小下拉列表处理:

            rtb.Font.Dispose();
            //store style info in Temp1
            _temp1.Rtf = rtb.Rtf;
            //store new font in Temp2
            _temp2.Text = rtb.Text;
            _temp2.Font = new Font(fontDropDown.Text, int.Parse(fontSizeDropDown.SelectedItem.ToString()));//replaces FONT and STYLE
            //
            _temp1.Focus();
            for (int i = 0; i < _temp1.TextLength; i++)
            {
                _temp1.Select(i, 1);
                if (_temp1.SelectionFont != null)
                {
                    _temp2.Select(i, 1);//set font to Font of temp2, style from temp1
                    _temp2.SelectionFont = new Font(_temp2.SelectionFont, _temp1.SelectionFont.Style);
                }
            }
            rtb.Rtf = _temp2.Rtf;
            //
            markAsModified();

我正在使用两个不可见的临时RTB,因为我担心“闪烁”的可能性。 我只是想知道是否有更好的方法来做到这一点,没有pInvoking或InterOp。 *同样:由于此解决方案让我担心内存/性能问题,我想知道此代码导致此类问题的可能性。

0 个答案:

没有答案