设置Viewbox.Child会导致ArgumentException

时间:2010-11-01 19:11:27

标签: 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");
}

我在这里做错了吗?

1 个答案:

答案 0 :(得分:6)

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