如何在运行时创建WPF UserControl的映像

时间:2011-03-23 10:29:34

标签: c# wpf optimization user-controls wpf-controls

我已经创建了一个Canvas的WPF应用程序,我将UserControls放置在{{1}}上,用户可以移动和调整大小(就像Windows窗口一样)。现在我已经发现这对于旧PC而言可能非常慢,这是一个问题。

作为一种解决方案,我考虑生成一个显示UserControl的图形,并在调整Control /拖动Control时显示,以防止WPF永久重新计算所有元素。唯一的问题是我不知道如何生成这个图像。

是否有类似于.Net的功能?或者我怎么能自己做呢?

2 个答案:

答案 0 :(得分:6)

您可以使用RenderTargetBitmap将WPF控件渲染到位图,然后可以将此图像复制到剪贴板,保存到文件或用作GUI的一部分

查看Get a bitmap image from a Control view

请注意,当您尝试渲染的控件的某些部分不可见时(或许在滚动查看器中),您可以遇到问题

答案 1 :(得分:0)

WPF应用程序确实需要一些相当严重的咕噜声;特别是在图形部门,并且从系统中存在一个像样的视频卡中受益匪浅。即使这样,WPF应用程序的性能(如果不仔细构建)也可能有很多不足之处......

那就是说,你可以使用FixedDocument来栅格化一个UserControl,然后把它转换成一个GIF / JPG / PNG并把它放到被调整大小的控件的位置......但是我希望这个过程本身就像比当前观察到的性能问题慢或慢。