Silverlight 设置Viewbox.Child会导致ArgumentException

Silverlight 设置Viewbox.Child会导致ArgumentException,silverlight,Silverlight,异常消息为“值不在预期范围内”。代码如下: private void PrintButton_Click(object sender, RoutedEventArgs e) { PrintDocument pd = new PrintDocument(); pd.PrintPage += (s, pa) => { Viewbox vb = new Viewbox(); vb.Child = MainGrid;

异常消息为“值不在预期范围内”。代码如下:

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");
}
我在这里做错了什么吗?

当您试图设置一个已将父元素设置为容器子元素的UIElement时,当您尝试将具有相同“name属性”的UIElement的两个实例添加到父容器时,会出现“值不在预期范围内”错误。在您的示例中,MainGrid必须是另一个容器的子容器,因此不能添加为Viewbox的子容器。从主栅格的父级中删除主栅格,然后将其添加到Viewbox。完成后,从Viewbox中删除MainGrid并将其添加回其原始父级