创建MouseOver预览的最佳解决方案?

时间:2010-10-30 17:17:03

标签: wpf mvvm

我想实现允许用户将鼠标移到按钮上的功能,并且会出现工具提示。工具提示将显示特定ViewModel的缩小预览。

我实现了大部分内容,但是,如果我采用基本上使用ContentPresenter呈现ViewModel的最简单方法,那么每次用户将鼠标移到按钮上时,都会显示工具提示,ContentPresenter将被渲染,这实际上意味着我的ViewModel的类型引用数据模板将每次渲染,这将导致太多的开销,我不想要,因为数据模板包含一些需要几秒钟渲染的第三方控件

所以,对于我的问题......如何才能以最初只渲染预览的方式完成,然后以某种方式存储在内存中以供后续观看?

克里斯

1 个答案:

答案 0 :(得分:0)

听起来您可能需要预先渲染和缓存控件,使用预测值来填充它们。然后将其外观作为ImageBrushes(冻结)存储在由其配置键入的字典中。这听起来并不像您将获得仅针对此应用程序特定要求的仅查看解决方案。

ViewModel的配置数据在用户与页面交互时会有多大差异?你能多久缓存一下?如果您事先知道所有数据,则可以在加载后立即开始渲染快照。如果您正在等待输入,则可能无法将渲染时间偏移到用户不会注意到的位置。但听起来这是你的目标,以确保用户不会在鼠标悬停时支付渲染成本。也许保存样本数据的相关ViewModel的示例快照可以吗?

相关问题