I am building flowdocument from ViewModel and then print it to 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");
}
The problem is when I create it from template and print it adds black border to table (border thickness is set to 0) [![enter image description here][1]][1]
but when I create document without xaml template with same code in c# it does not add border (border thickness not set)
var table1 = new Table
{
CellSpacing = 0,
Background = Brushes.White
};
flowDoc.Blocks.Add(table1);
enter code here
[![enter image description here][2]][2]
How can I fix XAML template to disable border? [1]: https://i.sstatic.net/BlYhX.png [2]: https://i.sstatic.net/HoZnF.png
Just removed x:Name
from the table and it worked!
Tip: Adding the Name
property to any of the Flowdocument block elements adds a black border when printing (I only tested printing to PDF).