WPF RichTextBox文本的问题(好的绝对加分)
今天第一次用richtextbox,发现没有text属性,我现在有一个string变量,要如何赋值?拜托你自己先试试,没有这个属性,这是WPF...
今天第一次用richtextbox,发现没有text属性,我现在有一个string变量,要如何赋值?
拜托你自己先试试,没有这个属性,这是WPF 展开
拜托你自己先试试,没有这个属性,这是WPF 展开
3个回答
展开全部
RichTextBox 只是一个控件,它所承载的内容由其 Document 属性来呈现.
Document 是一个 FlowDocument 类型.
FlowDocument 是放置块内容的容器 (Blocks), 这里的块是指 非行内的元素(这个我也不知道怎么用中文解释,如果你知道 html 的话,它们就是类似于 DIV 标签,而不能是类似 SPAN 标签的元素). 可用的块级元素只有几个,自己查阅一下 msdn, 块级元素可以再包含块级元素或 行级---Inline derived元素).
[这里的块 和 行,用中文真的不好解释:块 Block-derived
行 - Inline derived]
所以你可以像下面一样将你的 String 放到 Document 中:
myRTB.Document = new FlowDocument(new Paragraph(new Run(myString)));
由于 FlowDocument 是基于块级元素的, 所以它的内容可以由它的 Blocks 属性设定, 上面一行的代码拆解就是:
FlowDocument doc = new FlowDocument();
Paragraph p = new Paragraph(); // Paragraph 类似于 html 的 P 标签
Run r = new Run(myString); // Run 是一个 Inline 的标签
p.Inlines.Add(r);
doc.Blocks.Add(p);
myRTB.Document = doc;
重点: 初始 RichTextBox 的 Document,Document 的 Blocks 可以随意添加,修改,删除内容等。
块级元素(Block-derived elements) 还有其它的,除了 Paragraph 外。
-----------
具体参考可以查阅 关于 WPF 中 Documents 部分的章节。
Document 是一个 FlowDocument 类型.
FlowDocument 是放置块内容的容器 (Blocks), 这里的块是指 非行内的元素(这个我也不知道怎么用中文解释,如果你知道 html 的话,它们就是类似于 DIV 标签,而不能是类似 SPAN 标签的元素). 可用的块级元素只有几个,自己查阅一下 msdn, 块级元素可以再包含块级元素或 行级---Inline derived元素).
[这里的块 和 行,用中文真的不好解释:块 Block-derived
行 - Inline derived]
所以你可以像下面一样将你的 String 放到 Document 中:
myRTB.Document = new FlowDocument(new Paragraph(new Run(myString)));
由于 FlowDocument 是基于块级元素的, 所以它的内容可以由它的 Blocks 属性设定, 上面一行的代码拆解就是:
FlowDocument doc = new FlowDocument();
Paragraph p = new Paragraph(); // Paragraph 类似于 html 的 P 标签
Run r = new Run(myString); // Run 是一个 Inline 的标签
p.Inlines.Add(r);
doc.Blocks.Add(p);
myRTB.Document = doc;
重点: 初始 RichTextBox 的 Document,Document 的 Blocks 可以随意添加,修改,删除内容等。
块级元素(Block-derived elements) 还有其它的,除了 Paragraph 外。
-----------
具体参考可以查阅 关于 WPF 中 Documents 部分的章节。
展开全部
在XAML中这样写:
<RichTextBox>
<FlowDocument>
<Paragraph>这里加上你的内容(也可以是富文本的,比如<Bold>粗体</Bold>)</Paragraph>
</FlowDocument>
</RichTextBox>
在C#中这样写:
RichTextBox rtb = new RichTextBox();
FlowDocument fd = new FlowDocument();
fd.Blocks.Add(new Paragraph(new Run("文本")));
rtb.Document = fd;
更加复杂的组合应用,您可以自己尝试,基本原理:RichTextBox的文本来源是其Document属性,这个属性是个FlowDocument,能想办法组装一和FlowDocument对象出来就可以了。
<RichTextBox>
<FlowDocument>
<Paragraph>这里加上你的内容(也可以是富文本的,比如<Bold>粗体</Bold>)</Paragraph>
</FlowDocument>
</RichTextBox>
在C#中这样写:
RichTextBox rtb = new RichTextBox();
FlowDocument fd = new FlowDocument();
fd.Blocks.Add(new Paragraph(new Run("文本")));
rtb.Document = fd;
更加复杂的组合应用,您可以自己尝试,基本原理:RichTextBox的文本来源是其Document属性,这个属性是个FlowDocument,能想办法组装一和FlowDocument对象出来就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
richtextbox.RichText="test";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询