Tag: flowdocument

如何将多个FlowDocumentReaders添加到StackPanel?

感谢Leom的回答,我可以通过将FlowDocument包装在FlowDocumentReader中来将其添加到StackPanel中。 但现在我有两个问题: 似乎只添加了第一个 FlowDocumentReader,其余的被忽略了 有一个我不能摆脱的不必要的边际 如何在没有不需要的边距的情况下将多个FlowDocumentReaders添加到StackPanel? 替代文字http://www.deviantsart.com/upload/1ndiqqe.png XAML: 代码背后: using System.Windows; using System.Windows.Controls; using System.Windows.Documents; namespace TestFlowdoc23432 { public partial class Window1 : Window { public Window1() { InitializeComponent(); StackPanel sp = new StackPanel(); TextBlock tb1 = new TextBlock(); tb1.Text = “first text block”; sp.Children.Add(tb1); TextBlock tb2 = new TextBlock(); tb2.Text = “second text block”; […]

在WPF FlowDocument中嵌入自定义控件

有没有办法将自定义控件嵌入到flowdocument中并由FlowDocument查看器正确显示(将其导出到Xaml文本文件并由查看器打开)?

FlowDocument表中的错误?

首先,FlowDocuments TableColumns的宽度计算是一团糟。 但这太荒谬了: text that’s not visible 这实际上没有显示。 所以表格似乎弄乱了整个文件。 如果我取出Width=”100″或将Borderthickness更改为不太精确的东西,如BorderThickness=”0.755″它确实按预期显示表格和段落。 (尝试使用此代码甚至崩溃Kaxaml。) 这是一个非常简化的解决方案。 我的真实FlowDocument是根据其他数据计算出来的,所以我不能根据视觉检查使用不同的值。 谁能告诉我这里发生了什么? 我怎么能解决这个问题? 编辑: 正如建议我添加了一个错误报告。

从FlowDocument创建XPS文档并即时附加它

我有一个FlowDocument,我想转换为XPS文档并将其附加到电子邮件并将它们一起发送。 我正在使用此代码 public static MemoryStream FlowDocumentToXPS(FlowDocument flowDocument, int width, int height) { MemoryStream stream = new MemoryStream(); using (Package package = Package.Open(stream, FileMode.Create, FileAccess.ReadWrite)) { using (XpsDocument xpsDoc = new XpsDocument(package, CompressionOption.Maximum)) { XpsSerializationManager rsm = new XpsSerializationManager(new XpsPackagingPolicy(xpsDoc), false); DocumentPaginator paginator = ((IDocumentPaginatorSource)flowDocument).DocumentPaginator; paginator.PageSize = new System.Windows.Size(width, height); rsm.SaveAsXaml(paginator); rsm.Commit(); } } stream.Position = […]

使用WPF显示流式富文本

我有一个WPF应用程序,它通过套接字连接到设备并获取流文本数据(每秒约1条消息)。 然后,该数据显示在UI上。 用户可以创建规则,如“如果数据包含’abc’突出显示行”或“…使其变为粗体” ,那么纯文本输出将不会执行,它需要是“丰富”文本。 我目前的解决方案是在我的ViewModel中包含一个包含格式化输出的FlowDocument 。 View有一个FlowDocumentScrollViewer ,它绑定到ViewModel中的FlowDocument。 这样可行,但是当FlowDocument变大(~6,000行)时,性能开始下降。 当前算法将行数限制为10,000,但事情变得更糟,直到应用程序无法使用。 一旦它达到10,000行,然后我为每一行添加一行,导致FlowDocumentScrollViewer获得每个新行的2个更新通知。 我试图找到批量删除的方法(当我们达到10,000行删除最旧的1,000行时),但FlowDocument上没有批量删除。 循环1,000次并执行删除会导致1,000个更新通知并锁定UI。 这是我的问题,这是我的问题: 使用WPF显示流式富文本内容的最佳方法是什么? 我每秒得到~1条消息,每条消息大约150个字符,我想保留最后10000条消息。 我是以错误的方式来做这件事的吗? 是否有其他控件/对象表现更好? 编辑 :这里有一些更多的要求 需要能够打印输出文本 需要能够选择并复制输出文本,以便将其粘贴到另一个文档中

如何在WPF中没有Print Dialog的情况下直接打印?

我只想知道如何打印流文档而不在WPF中显示Print Dialog。 感谢帮助…

将页脚添加到FlowDocumentsdocuments

我想在wpf中添加页脚到FlowDocuments 。 请帮帮我怎么添加?

WPF Flowdocument“更改案例”function

我正在为我的RichTextBox实现一个“更改案例”function,例如word with Shift + F3。 所有这一切都是在lower-> upper-> title case之间切换,一旦我访问了我需要的字符串,这非常简单。 我的问题是,如何在flowdocument中更改(并首先找到它)一个字符串,而不会丢失任何可能包含在字符串中的嵌入元素(丢失格式不是问题)。 与单词相同,我需要此function2个案例: 1)鼠标选择的文本。 我试过简单 this.Selection.Text = newText; 但那当然失去了我的嵌入元素。 2)插入位置之前的最后一个字。 任何非文本元素都是单词分隔符,但也可以是一个单词 “Hello”.

从代码中滚动WPF FlowDocumentScrollViewer?

我有一个FlowDocumentScrollViewer我想在添加文本时自动滚动到底部。 在代码中我向段落添加了内联,但是当有很多文本时,我希望能够简单地使用代码向下滚动而不是让用户这样做。 有什么建议?

如何使用FlowDocument的IDocumentPaginatorSource DocumentPaginator将FlowDocument转换为FixedDocument?

我有: DocumentPaginator dp = ((IDocumentPaginatorSource)document).DocumentPaginator; 和: FlowDocument document = new FlowDocument(); // create a flow document… 如何使用DocumentPaginator将FlowDocument转换为FixedDocument? 我似乎无法找到如何做到这一点。 我查看的所有网站都使用XpsWriter,如: XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(xpsDoc); DocumentPaginator dp = ((IDocumentPaginatorSource)document).DocumentPaginator; writer.Write(dp); 我可以编写XPS然后返回FixedDocument但是必须有更好的方法吗?