Wpf 创建鼠标悬停预览的最佳解决方案?

Wpf 创建鼠标悬停预览的最佳解决方案?,wpf,mvvm,Wpf,Mvvm,我想实现允许用户将鼠标移到按钮上并显示工具提示的功能。工具提示将显示特定ViewModel的缩小预览 我已经实现了其中的大部分,但是,如果我采取最简单的方法,基本上使用ContentPresenter来显示ViewModel,那么每次用户将鼠标移动到按钮上,以便显示工具提示时,ContentPresenter都会被渲染,这实际上意味着每次都会呈现ViewModel的类型引用数据模板,这将导致太多开销,这是我不希望看到的,因为数据模板包含一些需要几秒钟才能呈现的第三方控件 所以,我的问题是。。。。

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

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

所以,我的问题是。。。。如何使预览只在最初渲染,然后以某种方式存储在内存中以供后续查看


Chris

听起来您可能需要提前渲染和缓存控件,使用预测值填充控件。然后将它们的外观存储为ImageBrush,冻结在由其配置键入的字典中。听起来,对于这个特定于应用程序的需求,您不可能得到一个只显示视图的解决方案

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