WPF-如何从FixedDocument删除页面?

时间:2019-05-03 11:24:39

标签: c# wpf fixeddocument

我有一个名为“ MyPage”的简单类:

public class MyPage
{
    public TextBlock tbParagraph;
    public FixedPage page;
    public PageContent content;

    public MyPage(string Text)
    {
        tbParagraph = new TextBlock();
        page = new FixedPage();
        content = new PageContent();

        tbParagraph.Text = Text;
        page.Children.Add(tbParagraph);
        content.Child = page;
    }
}

现在,我可以创建一个FixedDocument并添加3个页面,其内容分别对应于该顺序的“ Page1”,“ Page2”和“ Page3”:

FixedDocument document = new FixedDocument();
public List<MyPage> listPages = new List<MyPage>();
listPages.Add(new MyPage("Page 1"));
listPages.Add(new MyPage("Page 2"));
listPages.Add(new MyPage("Page 3"));

foreach(MyPage pg in listPages)
{
    document.Pages.Add(pg.content);
}

现在有什么方法可以从FixedDocument中删除页面吗?我知道我可以使用document.Pages[2].Child.Children.Clear();清除特定页面的内容,但是如何删除页面本身?

1 个答案:

答案 0 :(得分:1)

documentation开始,FixedDocument应该是一种显示/打印机制,并且不是交互式/可编辑的。

话虽如此,您可以通过允许对MyPage类中的Text进行更改,然后在更改后根据需要重新构建FixedDocument,来实现基本的编辑。

public class MyPage
{
    public TextBlock tbParagraph;
    public FixedPage page;
    public PageContent content;
    public string Text {get; set;}

    public MyPage(string myText)
    {
       Text = myText;
    }

    public PageContent GetPage()
    {
        tbParagraph = new TextBlock();
        page = new FixedPage();
        content = new PageContent();

        tbParagraph.Text = Text;
        page.Children.Add(tbParagraph);
        content.Child = page;
        return content;
    }
}