Ich versuche, eine Textseite aus einer UWP-App zu drucken, aber ich habe ein Problem mit der Ausrichtung. Zunächst einmal habe ich eine Seite erstellt, die folgende XAML enthält:TextBox-Ausrichtung beim Drucken aus UWP
<Grid Background="White">
<TextBlock Text="Welcome Printed World!" FontSize="36" Foreground="Black" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
Beachten Sie, wie der Textblock innerhalb des Gitters zentriert werden soll, ausgerichtet ist.
Dann drucke ich es mit den verschiedenen PrintDocument Event-Handler; dies der Code Vorschau zu drucken, es (vereinfacht Margen zu ignorieren und die Nicht-Druckbereich):
Page printPage;
private void OnPrintDocumentPaginate(object sender, PaginateEventArgs e)
{
// Construct an instance of the page to print, and tell Windows that there is only 1 page
this.printPage = new PrintPage();
printDocument.SetPreviewPageCount(1, PreviewPageCountType.Final);
}
private void OnPrintDocumentGetPreviewPage(object sender, GetPreviewPageEventArgs e)
{
// Give Windows a reference to the page to print for preview
this.printDocument.SetPreviewPage(e.PageNumber, this.printPage);
}
Und das ist, wie es druckt:
Beachten Sie, dass der Textblock nicht zentriert .
Wenn ich jedoch den Textblock in einem Grenz wickeln, wie folgt aus:
<Grid Background="White">
<Border HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Text="Welcome Printed World!" FontSize="36" Foreground="Black"/>
</Border>
</Grid>
Dann ist es in Ordnung:
Kann jemand sehen, warum der Textblock nicht zentriert ist bei der Verwendung von das Original Xaml?
Geben Sie vertikale Ausrichtung und horizontale Ausrichtung an, um auch das Gitter zu zentrieren. – Archana
Das hat funktioniert, aber dann habe ich ein Problem, wenn ich andere TextBlocks an anderen Stellen, z. B. in der unteren rechten Ecke, ausgerichtet haben, so denke ich, dass das Raster die Seite füllen muss. Was ich gefunden habe, ist, dass ich eine TextBox anstelle eines TextBlocks mit einer BorderThickness von 0 verwenden kann, so dass es nur Text auf der gedruckten Seite ist. –