标签: flowdocument

将FlowDocument转换为简单文本

将flowdocument转换为简单文本的最简单,最优雅的方法是什么?

wpf flowdocument

11
推荐指数
1
解决办法
5619
查看次数

将HTML片段插入WPF FlowDocument

我正在从数据源动态构建WPF FlowDocument.其中一个数据元素是HTML的一个片段 - 我需要找到一种方法来解析它并将其插入到我的FlowDocument中.

我发现HTMLToXAMLConverter将返回HTML的XAML表示,但我仍然不确定如何最好地实例化该XAML片段,以便我可以将其插入到我的FlowDocument中.

html wpf xaml flowdocument

10
推荐指数
1
解决办法
8556
查看次数

如何将内联内容从一个FlowDocument插入另一个?

我正在构建一个应用程序,它需要允许用户从另一个插入RichTextBox当前插入位置的文本中插入文本.在运行这种技术之前,我花了很多时间搞砸了FlowDocument对象模型 - source并且target都是FlowDocuments:

using (MemoryStream ms = new MemoryStream())
{
    TextRange tr = new TextRange(source.ContentStart, source.ContentEnd);                    
    tr.Save(ms, DataFormats.Xaml);
    ms.Seek(0, SeekOrigin.Begin);
    tr = new TextRange(target.CaretPosition, target.CaretPosition);
    tr.Load(ms, DataFormats.Xaml);
}
Run Code Online (Sandbox Code Playgroud)

这非常有效.

我现在唯一的问题是它总是将源插入一个新的段落.它打破插入符号的当前运行(或其他),插入源,并结束段落.如果源实际上一个段落(或多个段落),那是合适的,但如果它只是(比方说)一行文本不合适.

我认为对此的答案很可能是最终检查目标是否完全由单个块组成,如果是,则TextRange在保存之前将块设置为块内容的开头和结尾到溪边.

整个世界FlowDocument对我来说都是一片黑暗神秘的海洋.如果必须的话,我可以成为它的专家(根据陀思妥耶夫斯基:"人是可以适应任何事物的动物."),但是如果有人已经想出这个并且可以告诉我该怎么做它会让我生活更容易.

c# wpf richtextbox flowdocument textrange

10
推荐指数
1
解决办法
3307
查看次数

如何在渲染到XPS时使用页眉和页脚创建Xaml FlowDocument?

我正在寻找一种干净的通用方法的概念来描述XAML FlowDocument中重复的页眉和页脚,而不需要任何代码.它只需要在从C#渲染到XPS时正确显示.

c# wpf xaml .net-4.0 flowdocument

10
推荐指数
1
解决办法
9895
查看次数

WPF - FlowDocument的自动行号?

我刚刚开始我当前项目的合同生成例程,其中一个要求是合同中的每一行都必须编号.该数字应位于左边距,并使用垂直规则将编号与文档内容的其余部分分开.

我很确定我可以使用FixedDocument解决这个问题,但它不会很有趣.反正我是否可以使用FlowDocument来做到这一点?

c# wpf flowdocument fixeddocument

10
推荐指数
1
解决办法
2674
查看次数

如何将FlowDocument转换为rtf

我使用WPF RichTextBox将数据流中的flowdocument保存为byte [].现在我需要检索此数据并在RichTextBox报告中显示为rtf.当我尝试使用TextRange或在XAMLReader中转换byte []时,我得到一个FlowDocument,但我如何将其转换为rtf字符串,因为报告RichTextBox只需要rtf.

谢谢

阿文德

c# rtf flowdocument

9
推荐指数
1
解决办法
2万
查看次数

WPF RichTextBox - ScrollToEnd()方法不会导致任何滚动

RichTextBox我的WPF应用程序中的组件使用a FlowDocumentRichTextBoxs Document属性填充.

rtb.ScrollToEnd();似乎没有做任何事情,我甚至试图调用BringIntoView()添加到构造我的表的最后一行"行" FlowDocument.

有什么建议?谢谢!

c# wpf scroll richtextbox flowdocument

9
推荐指数
1
解决办法
9421
查看次数

将BlockUIContainer打印到XpsDocument/FixedDocument

  1. 如何打印具有的FlowDocument BlockUIContainer
  2. 如何在FlowDocument上强制执行度量/更新/排列?

背景

我生成FlowDocument了一段文本,其中Rectangle包含DrawingBrushes从资源字典和BlockUIContainer自定义控件填充的一些元素.

在任何的FlowDocument*的观察时,所述文档正确呈现控制无论其当文档被转换为固定文档/ XpsDocument,没有一个RectangleBlockUIContainer元素渲染.

我几乎可以肯定这是因为没有测量/安排控件,但是无法弄清楚如何在转换为XpsDocument之前强制执行.

  • 我已经LogicalTree递归地走过去做了以下事情,

    UIElement element = (UIElement)d;
    element.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity));
    element.Arrange(new Rect(element.DesiredSize));
    element.UpdateLayout();
    
    Run Code Online (Sandbox Code Playgroud)

    这里d是一个DependencyObject.我可以看到这在调试器中以break-pointed为单位设置ActualWidthActualHeight属性.

  • 我试图Dispatcher按照Will♦的建议强制渲染.

用于打印XpsDocument的代码

public class XpsDocumentConverter
{

    public static XpsDocumentReference CreateXpsDocument(FlowDocument document)
    {
        // Need to clone the document so that the paginator can work
        FlowDocument clonedDocument = DocumentHelper.Clone<FlowDocument>(document); …
Run Code Online (Sandbox Code Playgroud)

c# printing wpf xpsdocument flowdocument

9
推荐指数
2
解决办法
5383
查看次数

WPF打印 - 在WPF PrintDialog上自动设置打印机

我正在尝试将WPF FlowDocument打印到特定的打印机,而不提示用户.打印机是PDF转换器.

这很好用,除了它打印到默认打印机:

   PrintDialog pd = new PrintDialog();
   var doc = ((IDocumentPaginatorSource) RTB.Document).DocumentPaginator;
   // I would like to explicitly set the printer to print to here.
   pd.PrintDocument(doc, "Print Document");
Run Code Online (Sandbox Code Playgroud)

在WinForms中,文档上有一个System.Drawing.Printing.PrinterSettings对象,它有一个PrinterName属性,可以设置为我想要的打印机,但我在WPF中没有看到.

printing wpf flowdocument

9
推荐指数
1
解决办法
7002
查看次数

缓慢格式化RichTextBox

在rtb中格式化文本时,我的性能很差:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <StackPanel Orientation="Horizontal">
        <Button Click="ApplyFormatClick">ApplyFormat</Button>
        <TextBlock x:Name="Time"/>
    </StackPanel>

    <RichTextBox x:Name="Rtb" Grid.Row="1">
        <RichTextBox.Document>
            <FlowDocument>
                <Paragraph>
                    <Run>
                        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt …
Run Code Online (Sandbox Code Playgroud)

wpf performance richtextbox flowdocument

9
推荐指数
2
解决办法
3521
查看次数