0

私は Silverlight を初めて使用します。会社の GIS Web アプリケーションの印刷プレビュー テンプレートを作成するタスクを与えられました。私の要件は次のとおりです。

1) メインページの印刷プレビュー ボタンをクリックすると、新しい印刷プレビュー ウィンドウがポップアップ表示されます。2) プレビュー ウィンドウにはメインページのコンテンツが表示されます。3) 印刷するための印刷ボタンが表示されます。4) 次のページと前のページのオプションが必要です 5) プレビュー コンテンツをズームインおよびズームアウトするためのズーム アイコン/スライダー

今まで、メインページにプレビュー ボタンを追加しました。クリックすると、新しい xaml ウィンドウが開き、そのウィンドウで次のようなコンテンツを設定しました。

ここに PrintPreview.xaml のビューがあります

<Grid x:Name="LayoutRoot" Background="White">
    <Canvas x:Name="m_canvas" Height="490" VerticalAlignment="Top" Margin="0,0,60,0">

        <Button x:Name="m_btn_print" Canvas.Top="5" Canvas.Left="5" Width="32" Height="32" Click="m_btn_print_Click">
            <Image Source="Images/print.png" Stretch="Fill" />
            <ToolTipService.ToolTip>
                <ToolTip Content="Print"></ToolTip>
            </ToolTipService.ToolTip>
        </Button>

        <Button x:Name="m_btn_prev_page" Canvas.Top="5" Canvas.Left="45" Width="32" Height="32" Click="m_btn_prev_page_Click">
            <Image Source="Images/arrow.left.png" Stretch="Fill"/>
            <ToolTipService.ToolTip>
                <ToolTip Content="Previous Page"></ToolTip>
            </ToolTipService.ToolTip>
        </Button>

        <Button x:Name="m_btn_next_page" Canvas.Top="5" Canvas.Left="85" Width="32" Height="32" Click="m_btn_next_page_Click">
            <Image Source="Images/arrow.right.png" Stretch="Fill"/>
            <ToolTipService.ToolTip>
                <ToolTip Content="Next Page"></ToolTip>
            </ToolTipService.ToolTip>
        </Button>

        <Slider x:Name="m_sld_size" Minimum="50" Maximum="125" Value="100" SmallChange="5" LargeChange="5" ValueChanged="m_sld_size_ValueChanged"
                   Canvas.Top="15" Canvas.Left="245" VerticalAlignment="Top" HorizontalAlignment="Right" Width="80" />

        <TextBlock x:Name="m_lbl_size" Canvas.Top="2" Canvas.Left="265" FontSize="9" Text="Zoom" Foreground="Black" />

        <Canvas x:Name="m_canvas_print" Canvas.Top="40" Canvas.Left="5" Width="317" Height="445" Background="White"
            VerticalAlignment="Top" HorizontalAlignment="Left">
        </Canvas>


    </Canvas>
</Grid>

さて、コード ビハインドはどうあるべきか、このプレビューで mainpage.xaml コンテンツを表示するにはどうすればよいでしょうか。緊急を助けてください

前もって感謝します。

4

1 に答える 1

1

最初にアドバイスするのは、キャンバス オブジェクトを印刷するたびに同じものをファイルする場合を除き、キャンバス オブジェクトを使用しないことです。印刷される時間に基づいて変化する可能性のある動的なデータ値を印刷している場合は、スタック パネルまたはグリッドに移動します。

そうは言っても、ユーザーが印刷ボタンを押したときに m_cavas_print オブジェクトを印刷するには、印刷関数を接続する必要があります。以下にいくつかのサンプル印刷コードを追加しました。

    PrintDocument pd = new PrintDocument();

    pd.PrintPage += (s, e) =>
    {
        e.PageVisual = m_cavas_print;
    };

    pd.Print("MainPageContent");

これが印刷の基本原理です。これを印刷ボタンのクリックイベントハンドラーに入れると、キャンバスにあるものは何でも印刷されます。ここでは、印刷ページ イベントを処理するためにラムダ式を使用しましたが、別のメソッドを使用することもできます。

于 2013-03-21T19:56:01.813 に答える