Надрукуйте сітку WPF без GridLines

Я маю мережевий масив, і я хочу надрукувати всю 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 ; вам не потрібно показувати сітки для кожного коду 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
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug