设置Viewbox.Child会导致ArgumentException

Mik*_*ner 2 silverlight

异常消息是"值不在预期范围内".这是代码:

private void PrintButton_Click(object sender, RoutedEventArgs e)
{
    PrintDocument pd = new PrintDocument();
    pd.PrintPage += (s, pa) =>
        {
            Viewbox vb = new Viewbox();
            vb.Child = MainGrid; // MainGrid is a System.Windows.Controls.Grid.
            pa.PageVisual = vb;
        };

    pd.Print("Test Page");
}
Run Code Online (Sandbox Code Playgroud)

我在这里做错了吗?

cbo*_*ler 6

当您尝试将具有父项的UIElement设置为容器的子项时,当您尝试将具有相同"name属性"的两个UIElement实例添加到a时,会出现"值不在预期范围内"错误父容器等.在您的示例中,MainGrid必须是另一个容器的子级,因此无法添加为Viewbox的子级.从它的父级删除MainGrid,然后将其添加到Viewbox.完成后,从Viewbox中删除MainGrid并将其添加回原始父级.