- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要从大量数据中动态生成 FlowDocument
。因为这个过程需要几分钟,所以我想在后台线程上执行操作而不是让 UI 挂起。
但是,我无法在非 UI 线程上生成 FlowDocument
,否则尝试插入矩形和图像会导致运行时错误,提示它不是 STA 线程。
StackOverflow 上有几个线程似乎涉及我遇到的相同问题:
在第一个链接中有人建议如下:
"What I'd do: use a
XamlWriter
and serialize theFlowDocument
into anXDocument
. The serialization task involves theDispatcher
, but once it's done, you can run as many wacky parallel analyses of the data as you want and nothing in the UI will affect it. (Also once it's anXDocument
you query it withXPath
, which is a pretty good hammer, so long as your problems are actually nails.)"
有人可以详细说明作者的意思吗?
最佳答案
对于任何 future 的访客由于这篇文章,我遇到了同样的问题并解决了所有问题 article
最后做的是在后台线程上创建对象
Thread loadingThread = new Thread(() =>
{
//Load the data
var documant = LoadReport(ReportTypes.LoadOffer, model, pageWidth);
MemoryStream stream = new MemoryStream();
//Write the object in the memory stream
XamlWriter.Save(documant, stream);
//Move to the UI thread
Dispatcher.BeginInvoke(
DispatcherPriority.Normal,
(Action<MemoryStream>)FinishedGenerating,
stream);
});
// set the apartment state
loadingThread.SetApartmentState(ApartmentState.STA);
// make the thread a background thread
loadingThread.IsBackground = true;
// start the thread
loadingThread.Start();
然后将结果作为 xaml 写入内存流,以便我们可以在主线程中读取它
void FinishedGenerating(MemoryStream stream)
{
//Read the data from the memory steam
stream.Seek(0, SeekOrigin.Begin);
FlowDocument result = (FlowDocument)XamlReader.Load(stream);
FlowDocumentScrollViewer = new FlowDocumentScrollViewer
{
Document = result
};
//your code...
希望它能为其他人节省一些时间:)
关于c# - 在 BackgroundWorker 线程上创建 FlowDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10313143/
我如何将一个 FlowDocument 的内容复制到下面的另一个 FlowDocument 是我尝试过的 foreach (var blk in fd1.Blocks) { fd2.Blocks
我正在构建一个应用程序,该应用程序需要允许用户将来自一个 RichTextBox 的文本插入到另一个的当前插入符位置。在运行此技术之前,我花了 很多 时间来研究 FlowDocument 的对象模型
我使用来自 here 的代码(来自 Wiimax 的回答)将我的 FlowDocument 转换为 XML 并将其转换回 FlowDocument。但是现在我在这里遇到了一些问题。 我的转换代码: p
我有: DocumentPaginator dp = ((IDocumentPaginatorSource)document).DocumentPaginator; 和: FlowDocument d
由于 BlockUIContainer 中的 ItemsControl,我有一个 FlowDocument 高度不同。在某些情况下,ItemsControl 会超出页面高度。如果需要,有没有办法在打印
我有一个 FlowDocument 表,我想在其中为布局增添一点趣味。我在想像一条细线将发票上的子金额与总金额分开,或者像标题行下的线一样,通常以标准 Word 2007+ 表格样式为特色。 我希望我
我正在 WPF 中编写一个笔记应用程序,使用 FlowDocument对于每个单独的音符。该应用程序按标签搜索和过滤笔记。我想将当前过滤列表中的所有笔记打印为单独的文档,并且我只想在作业开始时显示一个
在 WPF 中,是否有一种简单的方法可以将波浪下划线(如 Word 中的拼写错误)添加到 FlowDocument元素?这是Underline类,但似乎没有办法设计它。 最佳答案 您可以使用对 Rob
我怎么知道我是否在页面的末尾并插入一个分隔符?我正在尝试打印带有重复 header 的 wpf 文档。 问候 最佳答案 有一个很好的CodeProject article关于 Bram Fokke .
我在 WPF 控件库中定义了一个 FlowDocument(添加新项...,FlowDocument -- 是文件的根元素)。我打算将其用于多种上下文中,例如在用户控件或窗口中,在代码中引用以进行数据
我试图在我的 WPF 应用程序中外化一些措辞,但我也希望能够使用某种程度的格式。 我最初的想法是使用表示 FlowDocument 或 Paragraph 的字符串资源,例如: Some dis
这个我试过了...... _doc = new FlowDocument(); Table t = new Table(); for (int i = 0; i < 7; i++) { t.C
我正在寻找一种在类似标签的控件中呈现短 FlowDocument 字符串的方法。 在 WPF 中,用户可以将文本输入到 RichTextBox 中。结果是一个 FlowDocument 字符串。我正在
在 WPF 中,是否有一种简单的方法可以向 FlowDocument 元素添加波浪下划线(如 Word 中的拼写错误)?有 Underline 类,但似乎没有办法设置它的样式。 最佳答案 您可以使用对
我有一个 FlowDocument,我想填充整个窗口的宽度和高度。我曾尝试使用 FlowDocumentPageViewer(运气不好),现在我正在使用 DocumentPageView。我仍然无法让
由于我对 WPF FlowDocuments 还很陌生,所以我想问一下下面的代码是否正确。它应该将 FlowDocument 中包含的所有图像作为列表返回: List FindAllImagesInP
我想生成 FlowDocument 的第一页的小预览图像(想象一下 FlowDocuments 集合的缩略图 View )。任何人都可以推荐这样做的好方法吗? 最佳答案 您应该能够通过让 FlowDo
我在我的应用中使用了富文本框。 在流文档中,我有一个表格,在其中,我有表格行组,在表格行内,然后是表格单元格。在表格单元格内,我使用了一个具有特定名称的段落。稍后我如何通过使用 c# 代码指定名称来获
我想要一个表格,根据内容在逻辑上调整列的大小。这在 WPF 中可能吗? alt text http://img43.imageshack.us/img43/2640/flowdocument.jpg
我正在创建一个包含多个记录的流文档。每条记录的顶部包含两个表,然后是我从数据库中提取的一些富文本。附加富文本的代码如下(cp.Comments 包含 rtf 标记文本)。 Dim tr As Text
我是一名优秀的程序员,十分优秀!