- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 DataTable,其中包含我要打印的任意数量的列和行。到目前为止,我最好的运气是将数据放入表中,然后将表添加到 FlowDocument。
到现在为止还挺好。我现在遇到的问题是表格只“想要”占据文档宽度的大约一半。我已经为 FlowDocument 的 PageWidth 和 ColumnWidth 属性设置了适当的值,但是 Table 似乎不想拉伸(stretch)以填满分配的空间?
最佳答案
为了将您的 FlowDocument 内容设置为完整的可用宽度,您必须首先知道页面的宽度。您需要设置的用于处理内容长度的属性是 列宽 FlowDocument 上的 Prop 。
我通常创建一个“PrintLayout”帮助程序类来保留页面宽度/高度和填充的已知预设。 Wou 可以从 Ms Word 中嗅探预设并填充更多。
PrintLayout 的类
public class PrintLayout
{
public static readonly PrintLayout A4 = new PrintLayout("29.7cm", "42cm", "3.18cm", "2.54cm");
public static readonly PrintLayout A4Narrow = new PrintLayout("29.7cm", "42cm", "1.27cm", "1.27cm");
public static readonly PrintLayout A4Moderate = new PrintLayout("29.7cm", "42cm", "1.91cm", "2.54cm");
private Size _Size;
private Thickness _Margin;
public PrintLayout(string w, string h, string leftright, string topbottom)
: this(w,h,leftright, topbottom, leftright, topbottom) {
}
public PrintLayout(string w, string h, string left, string top, string right, string bottom) {
var converter = new LengthConverter();
var width = (double)converter.ConvertFromInvariantString(w);
var height = (double)converter.ConvertFromInvariantString(h);
var marginLeft = (double)converter.ConvertFromInvariantString(left);
var marginTop = (double)converter.ConvertFromInvariantString(top);
var marginRight = (double)converter.ConvertFromInvariantString(right);
var marginBottom = (double)converter.ConvertFromInvariantString(bottom);
this._Size = new Size(width, height);
this._Margin = new Thickness(marginLeft, marginTop, marginRight, marginBottom);
}
public Thickness Margin {
get { return _Margin; }
set { _Margin = value; }
}
public Size Size {
get { return _Size; }
}
public double ColumnWidth {
get {
var column = 0.0;
column = this.Size.Width - Margin.Left - Margin.Right;
return column;
}
}
}
<FlowDocument x:Class="WpfApp.MyPrintoutView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApp"
mc:Ignorable="d"
PageHeight="{Binding Height, Source={x:Static local:PrintLayout.A4}}"
PageWidth="{Binding Width, Source={x:Static local:PrintLayout.A4}}"
PagePadding="{Binding Margin, Source={x:Static local:PrintLayout.A4}}"
ColumnWidth="{Binding ColumnWidth, Source={x:Static local:PrintLayout.A4}}"
FontFamily="Segoe WP"
FontSize="16" ColumnGap="4">
<!-- flow elements -->
</FlowDocument>
FlowDocument result = new WpfApp.MyPrintoutView();
result.PageWidth = PrintLayout.A4.Size.Width;
result.PageHeight = PrintLayout.A4.Size.Height;
result.PagePadding = PrintLayout.A4.Margin;
result.ColumnWidth = PrintLayout.A4.ColumnWidth;
关于WPF - FlowDocument - 将表格拉伸(stretch)到整个宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4857754/
我如何将一个 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
我是一名优秀的程序员,十分优秀!