印刷プレビュー画面から印刷した場合、印刷の向きの設定が維持されない
対象製品
SPREAD for WPF 1.0J
状況
修正済み
詳細
印刷プレビュー画面から印刷した際、印刷の向きの設定が維持されない場合があります。
【手順】
1.新規ウィンドウにSPREADとButtonを配置します
2.下記サンプルコードをコピーします
3.Buttonをクリックし、印刷プレビュー画面から印刷します
--印刷の向きの設定が維持されません
【サンプルコード】
Private Sub MainWindow_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
' 印刷の向きの設定
GcSpreadGrid1.PrintSettings = New GrapeCity.Windows.SpreadGrid.PrintSettings
GcSpreadGrid1.PrintSettings.PageOrientation = GrapeCity.Windows.SpreadGrid.PrintPageOrientation.Landscape
GcSpreadGrid1.RowCount = 10
' テストデータの設定
For i As Integer = 0 To GcSpreadGrid1.RowCount - 1
For j As Integer = 0 To GcSpreadGrid1.ColumnCount - 1
GcSpreadGrid1.Cells(i, j).Value = "R=" + i.ToString() + "C=" + j.ToString()
Next
Next
End Sub
Private Sub Button1_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
GcSpreadGrid1.PrintPreview()
End Sub
【手順】
1.新規ウィンドウにSPREADとButtonを配置します
2.下記サンプルコードをコピーします
3.Buttonをクリックし、印刷プレビュー画面から印刷します
--印刷の向きの設定が維持されません
【サンプルコード】
Private Sub MainWindow_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
' 印刷の向きの設定
GcSpreadGrid1.PrintSettings = New GrapeCity.Windows.SpreadGrid.PrintSettings
GcSpreadGrid1.PrintSettings.PageOrientation = GrapeCity.Windows.SpreadGrid.PrintPageOrientation.Landscape
GcSpreadGrid1.RowCount = 10
' テストデータの設定
For i As Integer = 0 To GcSpreadGrid1.RowCount - 1
For j As Integer = 0 To GcSpreadGrid1.ColumnCount - 1
GcSpreadGrid1.Cells(i, j).Value = "R=" + i.ToString() + "C=" + j.ToString()
Next
Next
End Sub
Private Sub Button1_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
GcSpreadGrid1.PrintPreview()
End Sub
回避方法
Service Pack 2(v1.0.2015.1109)で修正済み。
Service Pack 2(v1.0.2015.1109)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
プレビューボタンで印刷ボタンを押す時、コマンドをGcSpreadGridのPrintメソッドに置き換えます。
【サンプルコード】
Private Sub Button1_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
_cacheWindows.Clear()
GcSpreadGrid1.PrintPreview()
For Each w As Window In Me._cacheWindows
CommandManager.RemovePreviewExecutedHandler(w, AddressOf PreviewCommand)
Next
End Sub
Private _cacheWindows As New List(Of Window)()
Private Sub MainWindow_Deactivated1(sender As Object, e As EventArgs) Handles Me.Deactivated
For Each w As Window In Application.Current.Windows
If w Is Me OrElse Me._cacheWindows.Contains(w) Then
Continue For
End If
CommandManager.AddPreviewExecutedHandler(w, New ExecutedRoutedEventHandler(AddressOf PreviewCommand))
Me._cacheWindows.Add(w)
Next
End Sub
Private Sub PreviewCommand(sender As Object, e As ExecutedRoutedEventArgs)
If e.Command Is ApplicationCommands.Print Then
e.Handled = True
Me.GcSpreadGrid1.Print()
End If
End Sub
Service Pack 2(v1.0.2015.1109)より前のバージョンでは次の回避方法が有効です。
------------------------------------------
プレビューボタンで印刷ボタンを押す時、コマンドをGcSpreadGridのPrintメソッドに置き換えます。
【サンプルコード】
Private Sub Button1_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
_cacheWindows.Clear()
GcSpreadGrid1.PrintPreview()
For Each w As Window In Me._cacheWindows
CommandManager.RemovePreviewExecutedHandler(w, AddressOf PreviewCommand)
Next
End Sub
Private _cacheWindows As New List(Of Window)()
Private Sub MainWindow_Deactivated1(sender As Object, e As EventArgs) Handles Me.Deactivated
For Each w As Window In Application.Current.Windows
If w Is Me OrElse Me._cacheWindows.Contains(w) Then
Continue For
End If
CommandManager.AddPreviewExecutedHandler(w, New ExecutedRoutedEventHandler(AddressOf PreviewCommand))
Me._cacheWindows.Add(w)
Next
End Sub
Private Sub PreviewCommand(sender As Object, e As ExecutedRoutedEventArgs)
If e.Command Is ApplicationCommands.Print Then
e.Handled = True
Me.GcSpreadGrid1.Print()
End If
End Sub