You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在实例化Paragraph时设置属性?或修改Run文本不重置属性

解决方法

方法一:直接修改现有Run的文本(推荐)

你完全不需要重新创建Paragraph对象,直接修改已存在的Run的Text属性就能保留之前配置的边框等属性。

有两种实现方式:

  • 提前把Run存为变量:
// 初始化时把Run单独存起来
var run = new Run("");
var par = new Paragraph(run);
par.BorderBrush = Brushes.Black;
ThicknessConverter converter = new ThicknessConverter();
par.BorderThickness = (Thickness)converter.ConvertFromString("0.02cm");

// 后续直接修改Run的文本
run.Text = "new text";
  • 如果没提前存变量,也可以从Paragraph的Inlines集合里找到对应的Run:
// 假设par内只包含一个Run元素
var existingRun = par.Inlines.FirstOrDefault() as Run;
if (existingRun != null)
{
    existingRun.Text = "new text";
}

方法二:实例化新Paragraph时复制原有属性(不推荐)

如果一定要重新创建Paragraph,可以把旧对象的属性值复制到新对象上,但这种方式会产生不必要的对象创建开销,不如方法一高效:

var newPar = new Paragraph(new Run("new text"));
// 复制原有配置的属性
newPar.BorderBrush = par.BorderBrush;
newPar.BorderThickness = par.BorderThickness;
// 其他需要保留的属性也按此方式复制
par = newPar;

另外,你也可以用对象初始化器简化Paragraph的初始化代码,让属性设置更紧凑:

var par = new Paragraph(new Run(""))
{
    BorderBrush = Brushes.Black,
    BorderThickness = (Thickness)new ThicknessConverter().ConvertFromString("0.02cm")
};

但这只是优化初始化写法,核心还是尽量避免通过重新创建Paragraph来修改文本。

内容的提问来源于stack exchange,提问作者Marcus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 06:15:39