为动态创建的用户控件创建映像

时间:2010-09-07 04:39:10

标签: c# wpf

我正在尝试创建用户控件的图像。 usercontrol是动态创建的。

MyViewsUserControl myViewsCanvas = new MyViewsUserControl(MyViewsViewModel, item.Id);

usercontrols有一个网格,在某些情况下还有一个图表。我正在使用'RenderTargetBitmap'类创建图像。但由于某种原因,网格和图表的图像没有被创建。谁能告诉我这是什么问题?这是因为尚未加载用户控件吗?

注意:我在加载用户控件之前创建了图像。

这是代码:

 MyViews.MyViewsUserControl myViewsCanvas = new MyViews.MyViewsUserControl(AllFoundationMyViewsViewModel, item.Id);
 myViewsCanvas.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
 myViewsCanvas.Arrange(new Rect(new Point(), myViewsCanvas.DesiredSize));
 myViewsCanvas.UpdateLayout();
 screenInfo _screenInfo = new screenInfo(item.Id, item.MonarchMenuItem, "MyViews");
 UpdateControls(_DashBoardUserControl, i, myViewsCanvas, _screenInfo, item.MonarchMenuItem.DisplayName);

我在updateControls()方法中创建图像。

1 个答案:

答案 0 :(得分:0)

在尝试将控件渲染到位图之前,不要忘记调用用户控件的Measure,Arrange和UpdateLayout