Печать сетки WPF без GridLines

У меня есть grid-массив, и я хочу напечатать всю сетку grid.each в текстовом поле своей ячейки сетка установлена ​​в 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");
    }
}

но результатом является то, что только первая страница, напечатанная без границ/gridLines, а другая, еще напечатанная с помощью border/gridLines

2

1 ответы

Первая проблема заключается в том, что вызов this.DeleteBorder() дважды бессмысленен.

Во-вторых, если gridArray имеет только Grid s; вам не нужно показывать строки сетки для каждого Grid. Попробуйте следующее:

if (printDlg.ShowDialog() == true)
{
    /* remove this--this.DeletBorder(); */

    int index = 0;
    foreach(Grid item in this.gridArray)
    {
        item.ShowGridLines = false;
       //Add an identifier so you know what job is printing. You may need to call:
       //item.UpdateLayout();
        printDlg.PrintVisual(item, "Stiker Print Job: " + index.ToString());
    }
}

Если это не решит вашу проблему, предоставьте некоторый код XAML и/или более примеров, чтобы воссоздать проблему на http://gist .github.com .

1
добавлено
Microsoft Stack Jobs
Microsoft Stack Jobs
1 788 участник(ов)

Work & freelance only Microsoft Stack. Feed https://t.me/Microsoftstackjobsfeed Чат про F#: @Fsharp_chat Чат про C#: @CSharpChat Чат про Xamarin: @xamarin_russia Чат общения:@dotnettalks

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot