English 中文(简体)
我如何复制《世界森林论坛流动文件》内容?
原标题:How can I copy WPF FlowDocument InlineUIContainer contents?
  • 时间:2009-10-23 05:35:14
  •  标签:

我有几家有线性活着的农联流动文件,它们是简单的InlineUIContainers,其中载有带布顿一些文字的风格 but子。 内容。 当我将案文和载有纽芬兰语的InlineUIContainer从流通文件复制到文本Box时,则没有复制纽芬兰语。

可以将直线纽顿改成正文数据。 我利用《流动文件》进行了尝试。 数据目标。 制版活动,但我似乎无法找到任何关于如何使用这种或即便是正确方向的好样本。

谢谢。

问题回答

我也存在同样的问题,并设法取得如下工作:

public class MyRichTextBox : RichTextBox
{
    public MyRichTextBox()
        : base()
    {
        CommandManager.RegisterClassCommandBinding(typeof(MyRichTextBox),
                                                   new CommandBinding(ApplicationCommands.Copy, OnCopy, OnCanExecuteCopy));
    }

    private static void OnCanExecuteCopy(object target, CanExecuteRoutedEventArgs args)
    {
        MyRichTextBox myRichTextBox = (MyRichTextBox)target;
        args.CanExecute = myRichTextBox.IsEnabled && !myRichTextBox.Selection.IsEmpty;
    }

    private static void OnCopy(object sender, ExecutedRoutedEventArgs e)
    {
        MyRichTextBox myRichTextBox = (MyRichTextBox)sender;
        Clipboard.SetText(GetInlineText(myRichTextBox));
        e.Handled = true;
    }

    private static string GetInlineText(RichTextBox myRichTextBox)
    {
        StringBuilder sb = new StringBuilder();
        foreach (Block b in myRichTextBox.Document.Blocks)
        {
            if (b is Paragraph)
            {
                foreach (Inline inline in ((Paragraph)b).Inlines)
                {
                    if (inline is InlineUIContainer)
                    {
                        InlineUIContainer uiContainer = (InlineUIContainer)inline;
                        if (uiContainer.Child is Button)
                            sb.Append(((Button)uiContainer.Child).Content);
                    }
                    else if (inline is Run)
                    {
                        Run run = (Run)inline;
                        sb.Append(run.Text);
                    }
                }
            }
        }
        return sb.ToString();
    }
}

当然,这非常简单——你可能会造成布顿的一个子类,并界定“GetCopy ToClipATText”等接口功能,而不是在富文框内“从纽顿”编码中找到文字。

举例来说,在丰富案文框内的所有案文,如果只将案文箱中某些部分抄录在纸板上,就会更加有用。 该员额举例说明了如何消除这种现象。





相关问题
热门标签