Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用CreatePageVisual和TransformToVisual将点从一个画布转换为另一个画布_C#_Silverlight - Fatal编程技术网

C# 使用CreatePageVisual和TransformToVisual将点从一个画布转换为另一个画布

C# 使用CreatePageVisual和TransformToVisual将点从一个画布转换为另一个画布,c#,silverlight,C#,Silverlight,我有一段使用DocumentToolkit打印XPS文档的代码: 受保护的重写UIElement CreatePageVisual(FixedPage FixedPage,大小maxSize) { Canvas page=(Canvas)base.CreatePageVisual(fixedPage,maxSize) 我遇到了一个错误,我不确定它是否会起作用。有什么建议吗?事实证明我有两件事做错了。首先,我的TransformToVisual(页面)应该是TransformToVisual(页面

我有一段使用DocumentToolkit打印XPS文档的代码:

受保护的重写UIElement CreatePageVisual(FixedPage FixedPage,大小maxSize) { Canvas page=(Canvas)base.CreatePageVisual(fixedPage,maxSize)


我遇到了一个错误,我不确定它是否会起作用。有什么建议吗?

事实证明我有两件事做错了。首先,我的TransformToVisual(页面)应该是TransformToVisual(页面.Parent)。最终我遇到的真正问题是,我应该将我的克隆添加到fixedPage而不是page

本质上,我是在画布内部的画布上添加文本块。我试图转换为Visual来修复它,但最终我删除了所有这些内容,并将我的项目添加到fixedPage

        foreach (Tuple<int, UIElement, int, int> t in AllFields.Where(f => f.Item1 == fixedPage.PageNumber))
        {
            var clone = t.Item2.Clone();

            Canvas.SetLeft(clone, t.Item3 * 1.335);
            Canvas.SetTop(clone, (790 - t.Item4) * 1.335);
            page.Children.Add(clone);
        }
     }
        GeneralTransform generalTransform = t.Item2.TransformToVisual(page);
        Point childToParentCoordinates = generalTransform.Transform(new Point(t.Item3 * 1.335, (790 - t.Item4) * 1.335));
        Canvas.SetLeft(clone, childToParentCoordinates.X);
        Canvas.SetTop(clone, childToParentCoordinates.Y);