0

我有一个要打印的内容控件,默认情况下打印内容控件时它位于我的 A4 中间。

因此,我将 contentcontrol 的大小更改为 A4 的大小,以便按以下方式打印:

printControl.Measure(new Size(816, 1056));
printControl.Arrange(new Rect(new Size(816, 1056)));
printControl.UpdateLayout();

PrintDialog dialog = new PrintDialog();
if (dialog.ShowDialog() == true)
{ 
    dialog.PrintVisual(printControl, sTitle); 
}

这实现了我想要的,现在打印时在 A4 上看起来是正确的,但是在用户界面中,尺寸也会改变,我试图解决这个问题,因为它有负面影响。

内容控件位于第二行的网格中。调整大小后,它会在包含工具栏的第一行上移动。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="auto"/>
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <ToolBar ToolBarTray.IsLocked="True" Grid.Row="0">
    //toolbar stuff here
    </ToolBar>
    <ContentControl Name="printControl" Grid.Row="1"></ContentControl>
 </Grid>

我试图在打印后将其调整回原来的大小,但仍然在工具栏上移动。

还尝试在代码中定义第二个内容控件,复制内容并调整第二个内容控件的大小。但它似乎保留了对原始文件的引用,因为它仍在用户界面中调整大小。

有没有人指点我如何解决这个问题?

更新

设法以一种简单的方式修复它。通过仅使用大小调用排列,它将内容控件定位在 0,0。我还需要使用 X 和 Y 值调用 Arrange,以免在工具栏上移动。

最后,当调用打印时,我将大小调整为 A4 并打印,当打印完成时,我调整大小回到渲染大小并将其放置在工具栏下方并且它可以工作。

4

0 回答 0