WPF如何削减stackpanel内容?

时间:2016-04-14 10:52:27

标签: c# wpf mvvm stackpanel

我需要打印一些信息,我有打印预览页面,其中包含:

<Grid Name="pageGrid" Width="Auto" Height="Auto" Margin="70">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <Grid Grid.Column="0" Grid.Row="0" Name="headerGrid" Margin="0,0,0,5" />
    <Grid Grid.Column="0" Grid.Row="1" Name="pageSummaryGrid" Margin="0" />
    <Grid Grid.Column="0" Grid.Row="2" Name="dataGrid" Margin="0" />
    <Grid Grid.Column="0" Grid.Row="3" Name="footerGrid" Margin="0,5,0,0" VerticalAlignment="Bottom" />
</Grid>

页眉和页脚存在于每个页面上。可以填充pageSummaryGrid和dataGrid。我也有这个代码填充打印细节:

pageCount = pages.Count;

for (int i = 0; i < pageCount; i++)
{
    myPage = new PrintPreviewPage();
    header = new PrintPageHeader();
    footer = new PrintPageFooter();

    CreateHeaderAndFooter(i + 1, pageCount, header, footer);
    myPage.SetHeader(header);
    myPage.SetTableData(pages[i]);
    myPage.SetFooter(footer);

    pageList.Add(myPage);
}

方法:

public void SetTableData(Panel panel)
{
    dataGridGrid.Children.Add(panel);
}

public void SetHeader(FrameworkElement header)
{
    headerGrid.Children.Add(header);
}

public void SetFooter(FrameworkElement footer)
{
    footerGrid.Children.Add(footer);
}

页面是StackPanel的列表(表示打印细节,例如一些图片,列表等)当某些页面[i]大于实际页面高度时,页脚变得不可见并且打印细节(列表,图片等)是切割(页脚被推)。

我希望页脚始终可见,如果我需要剪切打印细节。我试图设置StackPanel的MaxHeight,Height,ActualHeight和ClipToBounds属性,但没有任何作用。有什么想法吗?

0 个答案:

没有答案