我正在从ViewModel构建flowdocument,然后将其打印为PDF。
<UserControl x:Class="WpfApplication5.View.TransferTemplate" 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:p="clr-namespace:WpfApplication5.Properties" xmlns:viewmodels="clr-namespace:WpfApplication5.ViewModels" d:DataContext="{d:DesignInstance Type=viewmodels:WarehouseActionViewModel}" mc:Ignorable="d"
x:Name="templ">
<FlowDocument FontFamily="Cambria" FontSize="14" Background="White" x:Name="doc" d:ColumnWidth="1024">
<Paragraph>
<Run>Date: </Run>
<Run Text="{Binding Action.ActionDate, StringFormat=dd-MM-yyyy}" />
</Paragraph>
<Paragraph>
<Run>Note: </Run>
<Run Text="{Binding Action.Note}" />
</Paragraph>
<Paragraph>
<Run>Sender: </Run>
<Run Text="{Binding Action.WarehouseFrom}" />
</Paragraph>
<Paragraph>
<Run>Receiver: </Run>
<Run Text="{Binding Action.WarehouseTo}" />
</Paragraph>
<Table x:Name="border" CellSpacing="0" BorderThickness="0" Background="{StaticResource WhiteBg}" BorderBrush="{StaticResource WhiteBg}">
<Table.Columns>
<TableColumn Width="0.2*" />
<TableColumn Width="0.7*" />
<TableColumn Width="0.1*" />
</Table.Columns>
<TableRowGroup>
<TableRow FontSize="16">
<TableCell BorderThickness="0,1,0,1" BorderBrush="#CCCCCC" Padding="5">
<Paragraph>
<Run Text="{x:Static p:Resources.barcode}" d:Text="Code" />
</Paragraph>
</TableCell>
<TableCell BorderThickness="0,1,0,1" BorderBrush="#CCCCCC" Padding="5">
<Paragraph>
<Run Text="{x:Static p:Resources.Name}" d:Text="Name" />
</Paragraph>
</TableCell>
<TableCell BorderThickness="0,1,0,1" BorderBrush="#CCCCCC" Padding="5">
<Paragraph>
<Run Text="{x:Static p:Resources.quantity}" d:Text="Quantity" />
</Paragraph>
</TableCell>
</TableRow>
<TableRow/>
</TableRowGroup>
</Table>
</FlowDocument>
</UserControl>
PrintDialog printDlg = new PrintDialog();
FlowDocument f = new TransferTemplate(vm).doc;
f.ColumnWidth = printDlg.PrintableAreaWidth;
IDocumentPaginatorSource dps = f;
if ((bool)printDlg.ShowDialog())
{
printDlg.PrintDocument(dps.DocumentPaginator, "flow doc");
}
字符串
问题是当我从模板创建它并打印它时,它会将黑色边框添加到表**(边框厚度设置为0)[![在此处输入图像描述][1]][1]
但是当我用C#中相同的代码创建没有XAML模板的文档时,它不会添加边框(未设置边框厚度)**
var table1 = new Table
{
CellSpacing = 0,
Background = Brushes.White
};
flowDoc.Blocks.Add(table1);
enter code here
型
[![在此处输入图像描述][2]][2]
如何修复XAML模板以禁用边框?[1]:https://i.stack.imgur.com/BlYhX.png [2]:https://i.stack.imgur.com/HoZnF.png的
2条答案
按热度按时间j8ag8udp1#
刚刚从表中删除了
x:Name
,它工作了!提示:在任何Flowdocument块元素中添加
Name
属性会在打印时添加黑色边框(我只测试了打印到PDF)。lh80um4z2#
如果需要
Name
,则可以用Tag
替换。字符串
发送方为
TableCell
tb
型