gpt4 book ai didi

c# - flowdocument 是否有一个选项可以让我在打印时拒绝将 block 拆分为 2 页?

转载 作者:行者123 更新时间:2023-12-02 15:24:13 25 4
gpt4 key购买 nike

我正在尝试使用 wpf 中的 flowdocument 使用 c# 2010 制作小型标签打印机。

我生成这样的标签:

FlowDocument doc = new FlowDocument();
Paragraph p = new Paragraph();
foreach (Labels label in labels)
{

p.Inlines.Add(label.name+"\n");
p.Inlines.Add(label.age + "\n");
p.Inlines.Add(label.price + "\n");
p.Inlines.Add( "\n");
doc.Blocks.Add(p);
}

工作正常,但是当生成更多标签然后适合一页时,标签就会被分割。例如,姓名位于第 1 页,年龄、价格位于第 2 页。

现在我请求您提供一种防止标签被分割的可能性。

最佳答案

是的。您可以通过将“段落”的“KeepTogether”属性设置为 True(默认为 False)来指定不应跨页或跨列分割“段落”。唯一需要注意的是,如果一页上没有足够的空间容纳“段落”,则为了显示内容,将忽略“KeepTogether”属性。为了使其在您的示例中发挥作用,每个标签都需要有自己的段落,如下所示:

FlowDocument doc = new FlowDocument();
foreach (Labels label in labels)
{
Paragraph p = new Paragraph();
p.KeepTogether = true;
p.Inlines.Add(label.name + "\n");
p.Inlines.Add(label.age + "\n");
p.Inlines.Add(label.price + "\n");
doc.Blocks.Add(p);
}

您添加的最后一个换行符不再是必要的,因为段落之间自然存在空格。您甚至可以考虑删除“价格”行上的最后一个换行符。

关于c# - flowdocument 是否有一个选项可以让我在打印时拒绝将 block 拆分为 2 页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8539331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com