私はグリッド配列を持っていて、すべてのグリッドを印刷したいと思います。各グリッドはセルのテキストボックスにグリッドが設定されてShowGridLines = false;
おり、テキストボックスの境界線を削除するメソッドもあります。
private void DeletBorder()
{
Thickness bor = new Thickness(0.0);
for (int i = 0; i < this.gridArray.Length; i++)
{
foreach (Control ctrl in this.gridArray[i].Children)
{
if (ctrl.GetType() == typeof(TextBox))
{
((TextBox) ctrl).BorderThickness = bor;
}
}
}
}
この方法で配列内のすべてのグリッドを印刷しようとしています:
private void button1_Click(object sender, RoutedEventArgs e)
{
if (this.comboBox1.SelectedIndex > -1)
{
PrintDialog printDlg = new PrintDialog();
this.DeletBorder();
if (printDlg.ShowDialog() == true)
{
this.DeletBorder();
foreach (Grid item in this.gridArray)
{
printDlg.PrintVisual(item, "Stiker Print Job");
}
}
}
else
{
MessageBox.Show("you must select the page layout first");
}
}
しかし、その結果、最初のページのみがborder/gridLinesなしで印刷され、他のページはまだborder/gridLines付きで印刷されます